Pythonチュートリアル

Pythonホーム Pythonイントロ Pythonはじめに Python構文 Pythonコメント Python変数 Pythonデータ型 Python番号 Pythonキャスティング Python文字列 Pythonブール値 Python演算子 Pythonリスト Pythonタプル Pythonセット Python辞書 Python If ... Else PythonのWhileループ PythonForループ Python関数 Python Lambda Python配列 Pythonクラス/オブジェクト Pythonの継承 Pythonイテレータ Pythonスコープ Pythonモジュール Pythonの日付 Python数学 Python JSON Python RegEx Python PIP Python試してみてください... Pythonユーザー入力 Python文字列フォーマット

ファイル処理

Pythonファイル処理 Python読み取りファイル Python書き込み/ファイルの作成 Pythonファイルの削除

Pythonモジュール

NumPyチュートリアル パンダ攻略 Scipyチュートリアル

Python Matplotlib

Matplotlibイントロ Matplotlibはじめに Matplotlib Pyplot Matplotlibプロット Matplotlibマーカー Matplotlibライン Matplotlibラベル Matplotlibグリッド Matplotlibサブプロット Matplotlib散布図 Matplotlibバー Matplotlibヒストグラム Matplotlib円グラフ

機械学習

入門 平均中央値モード 標準偏差 パーセンタイル データ配信 正規データ分布 散布図 線形回帰 多項式回帰 重回帰 規模 トレーニング/テスト デシジョンツリー

Python MySQL

MySQLはじめに MySQLデータベースの作成 MySQLテーブルの作成 MySQL挿入 MySQL Select MySQL Where MySQL Order By MySQL削除 MySQLドロップテーブル MySQLアップデート MySQLの制限 MySQL参加

Python MongoDB

MongoDBはじめに MongoDBデータベースの作成 MongoDBCreateコレクション MongoDBインサート MongoDB検索 MongoDBクエリ MongoDBソート MongoDB削除 MongoDBドロップコレクション MongoDBアップデート MongoDBの制限

Pythonリファレンス

Pythonの概要 Python組み込み関数 Python文字列メソッド Pythonリストメソッド Python辞書メソッド Pythonタプルメソッド Pythonセットメソッド Pythonファイルメソッド Pythonキーワード Pythonの例外 Python用語集

モジュールリファレンス

ランダムモジュール リクエストモジュール 統計モジュール 数学モジュール cMathモジュール

Pythonハウツー

リストの重複を削除する 文字列を逆にする 2つの数字を追加する

Pythonの例

Pythonの例 Pythonコンパイラ Python演習 Pythonクイズ Python証明書

Pythonの継承


Pythonの継承

継承により、別のクラスからすべてのメソッドとプロパティを継承するクラスを定義できます。

親クラスは、継承元のクラスであり、基本クラスとも呼ばれます。

子クラスは、派生クラスとも呼ばれる別のクラスから継承するクラスです。


親クラスを作成する

どのクラスも親クラスになることができるため、構文は他のクラスを作成する場合と同じです。

Person、with firstnamelastnamepropertiesという名前のクラスと、printnameメソッドを作成します。

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

#Use the Person class to create an object, and then execute the printname method:

x = Person("John", "Doe")
x.printname()

子クラスを作成する

別のクラスから機能を継承するクラスを作成するには、子クラスを作成するときに親クラスをパラメーターとして送信します。

Studentクラスからプロパティとメソッドを継承する、という名前のクラスを作成しますPerson

class Student(Person):
  pass

注:pass クラスに他のプロパティやメソッドを追加したくない場合は、このキーワードを使用してください。

これで、StudentクラスにはPersonクラスと同じプロパティとメソッドがあります。

クラスを使用Studentしてオブジェクトを作成してから、次のprintnameメソッドを実行します。

x = Student("Mike", "Olsen")
x.printname()


__init __()関数を追加します

これまで、親からプロパティとメソッドを継承する子クラスを作成しました。

(キーワード__init__()の代わりに)子クラスに関数を追加します。pass

注:この__init__()関数は、クラスを使用して新しいオブジェクトを作成するたびに自動的に呼び出されます。

クラスに__init__()関数を 追加します。Student

class Student(Person):
  def __init__(self, fname, lname):
    #add properties etc.

関数を追加すると、子クラスは親の関数__init__()を継承しなくなります。__init__()

注:子の__init__() 関数は、親の関数の継承をオーバーライド __init__()します。

親の関数の継承を維持するには、親の__init__() 関数への呼び出しを追加し__init__()ます。

class Student(Person):
  def __init__(self, fname, lname):
    Person.__init__(self, fname, lname)

これで、__ init __()関数が正常に追加され、親クラスの継承が維持され、関数に機能を追加する準備が整いました __init__()


super()関数を使用する

Pythonにはsuper()、子クラスがその親からすべてのメソッドとプロパティを継承するようにする関数もあります。

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)

このsuper()関数を使用すると、親要素の名前を使用する必要がなくなり、親からメソッドとプロパティが自動的に継承されます。


プロパティの追加

クラスに呼び出さgraduationyearれる プロパティを追加します。Student

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)
    self.graduationyear = 2019

以下の例では、年は変数であり、学生オブジェクトを作成するとき2019にクラスに渡される必要があり ます。Studentこれを行うには、__ init __()関数に別のパラメーターを追加します。

パラメータを追加し、yearオブジェクトを作成するときに正しい年を渡します。

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

x = Student("Mike", "Olsen", 2019)

メソッドを追加する

クラスに呼び出さwelcomeれる メソッドを追加します。Student

class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

  def welcome(self):
    print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)

親クラスの関数と同じ名前のメソッドを子クラスに追加すると、親メソッドの継承がオーバーライドされます。


エクササイズで自分をテストする

エクササイズ:

Personという名前のクラスからプロパティとメソッドを継承するStudentという名前のクラスを作成するための正しい構文は何ですか?

class :