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()

実行インスタンス

オブジェクト属性を変更

以下のようにオブジェクトの属性を変更できます:

インスタンス

p1の年齢を40に設定:

p1.age = 40

実行インスタンス

オブジェクト属性を削除

以下のように使用できます: del キーワードでオブジェクトの属性を削除:

インスタンス

p1 オブジェクトの age 属性を削除:

del p1.age

実行インスタンス

オブジェクトを削除

使用 del キーワードでオブジェクトを削除:

インスタンス

p1 オブジェクトを削除:

del p1

実行インスタンス

pass 文

クラス定義は空であってはなりませんが、何らかの理由で無内容のクラス定義文を書いた場合、エラーを避けるために pass 文を使用してください。

インスタンス

class Person:
  pass

実行インスタンス