属性
CoddyのPythonジャーニー「Object Oriented Programming」セクションの一部 — レッスン 6/64。
属性は、クラスまたはそのオブジェクトに属するデータや変数です。これらはオブジェクトの状態に関する情報を保持します。
属性には2つのタイプがあります:
クラス属性 - クラスのすべてのオブジェクトで共有されます:
class Student:
school_name = "Python Academy" # クラス属性インスタンス属性 - 各オブジェクトに固有:
class Student:
school_name = "Python Academy"
def set_info(self, name, age):
self.name = name # インスタンス属性
self.age = age # インスタンス属性学生オブジェクトを作成し、それぞれのデータを設定します:
student1 = Student()
student2 = Student()
student1.set_info("Alice", 20)
student2.set_info("Bob", 22)インスタンス属性(各オブジェクトに固有)にアクセスします:
print(student1.name) # Alice
print(student2.name) # Bob
print(student1.age) # 20クラス属性にアクセスします(すべてのオブジェクトで共通):
print(student1.school_name) # Python Academy
print(student2.school_name) # Python Academy
print(Student.school_name) # Python Academy出力:
Alice
Bob
20
Python Academy
Python Academy
Python Academy主な違い: クラス属性はすべてのオブジェクトで共有されますが、インスタンス属性は各オブジェクトに固有です。インスタンス属性には self.attribute_name を使用し、クラス属性には単に attribute_name を使用します。
チートシート
属性(アトリビュート)は、クラスまたはそのオブジェクトに属するデータや変数です。
クラス属性 - クラスのすべてのオブジェクトで共有されます:
class Student:
school_name = "Python Academy" # クラス属性インスタンス属性 - 各オブジェクトに固有で、selfを使用して定義されます:
class Student:
school_name = "Python Academy"
def set_info(self, name, age):
self.name = name # インスタンス属性
self.age = age # インスタンス属性インスタンス属性へのアクセス:
student1 = Student()
student1.set_info("Alice", 20)
print(student1.name) # Aliceクラス属性へのアクセス:
print(student1.school_name) # Python Academy
print(Student.school_name) # Python Academy自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。