Python クラスとオブジェクト
Python クラス/オブジェクト
Pythonは、オブジェクト指向のプログラミング言語です。
Pythonのほとんどすべてのものはオブジェクトであり、属性とメソッドを持っています。
クラス(Class)は、オブジェクトの構築関数に似たもの、またはオブジェクトを作成するための「青写真」です。
クラスの作成
クラスを作成するには、 class
キーワード:
インスタンス
xという名前の属性を使用して、MyClassという名前のクラスを作成します:
class MyClass: x = 5
オブジェクトの作成
今や myClass という名前のクラスを使用してオブジェクトを作成することができます:
インスタンス
p1 という名前のオブジェクトを作成し、xの値を出力します:
p1 = MyClass() print(p1.x)
__init__() 関数
上記の例は最もシンプルな形式のクラスとオブジェクトですが、実際のアプリケーションではあまり役に立ちません。
クラスの意味を理解するには、まず組み込みの __init__()
関数。
すべてのクラスには __init__() という名前の関数があり、クラスの初期化時に常に実行されます。
__init__() 関数を使用してオブジェクト属性に値を設定するか、またはオブジェクトの作成時に実行する必要がある他の操作を設定します:
インスタンス
Person という名前のクラスを作成し、__init__() 関数を使用して name と age に値を設定します:
class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("Bill", 63) print(p1.name) print(p1.age)
コメント:クラスを作成して新しいオブジェクトを生成するたびに、自動的に呼び出されます __init__() 関数。
オブジェクトメソッド
オブジェクトはまたメソッドを含むことができます。オブジェクトのメソッドはそのオブジェクトに属する関数です。
Person クラスでメソッドを作成しましょう:
インスタンス
挨拶を出力する関数を挿入し、p1 オブジェクトでそれを実行します:
class Person: def __init__(self, name, age): self.name = name self.age = age def myfunc(self): print("Hello my name is " + self.name) p1 = Person("Bill", 63) p1.myfunc()
ヒント:self パラメータは、クラスの現在のインスタンスへの参照であり、そのクラスに属する変数にアクセスするために使用されます。
self パラメータ
self
パラメータはクラスの現在のインスタンスへの参照であり、クラスに属する変数にアクセスするために使用されます。
名前は self
、それを自由に呼び出すことができますが、それはクラス内の任意の関数の最初のパラメータ:
インスタンス
mysillyobject と abc という単語を使用して self を置き換える:
class Person: def __init__(mysillyobject, name, age): mysillyobject.name = name mysillyobject.age = age def myfunc(abc): print("Hello my name is " + abc.name) p1 = Person("Bill", 63) p1.myfunc()
pass 文
クラス定義は空であってはなりませんが、何らかの理由で無内容のクラス定義文を書いた場合、エラーを避けるために pass 文を使用してください。
インスタンス
class Person: pass