Personはクラスであり、_init_は特別なメソッド(initは初期化という単語の省略形)であり、クラスを使用してオブジェクトが作成された後に実行され、新しく作成されたオブジェクトのプロパティを初期化するために使用されます。
self.name = nameは、属性を初期化するためのステートメントです。
_init_はメソッドです。このメソッドには、self、name、ageの3つの正式なパラメーターがあります。自己はオブジェクト自体を表し、それを呼び出す人は誰でも表します。
ここで、self.name = nameおよびself.age = ageは、外部から渡された名前と年齢が、自己オブジェクトの名前と年齢属性に割り当てられることを示します。
作成オブジェクトは次のとおりです。P= Person( 'Xiaoming'、20)---------この文は特定の人物を作成し、この人物にXiaomingという名前を付け、Xiaomingを指定します。年齢は20歳です。 、およびオブジェクトXiaomingが変数pに割り当てられます。この時点で、pは人(オブジェクト)Xiaomingを表します。
この文は、人物オブジェクト(Xiao Ming)が作成され、init(self、name、age)メソッドが呼び出されて、人物の属性の初期化が完了することを意味します。XiaoMingは、名前に値を割り当て、年齢属性。
また、slefはオブジェクト自体を表し、それを呼び出す人は誰でも表すため、selfはパラメーターを渡す必要はありません。現時点では、selfはPであるPerson( 'Xiao Ming'、20)を表します。
つまり、pを作成し、pの属性に値を割り当てました。このとき、pは属性値を持つ人を表します。
ドット.
を使用して、pの名前や年齢を出力するなど、オブジェクトのプロパティを呼び出すことができます。完全なコードは次のとおりです。
例:
次に、自己紹介のためにPersonクラスにメソッドを定義します。
def desc(self):
print("我叫%s,今年%d岁" % (self.name, self.age))
クラス内では、selfを介して独自のプロパティとメソッドにアクセスする必要があります。Selfはクラス内の外部オブジェクトの表現です。このとき、pを使用してメソッドを呼び出すことができます。完全なコードは次のとおりです。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def desc(self):
print("我叫%s,今年%d岁" % (self.name, self.age))
p = Person('杰拉考', 200)
# 调用自我介绍方法 desc方法中的self就是外部的这个p
p.desc()
出力は次のとおりです。
我叫杰拉考,今年200岁
現在のdescメソッドのselfは外部オブジェクトpです。別のオブジェクトp2を定義すると、p2がdescを呼び出すと、descのselfはオブジェクトp2を表します。ことわざにあるように:谁调用,就表示谁