Pythonの属性とメソッドについて
Pythonにおいて、オブジェクトと呼ばれるものには属性とメソッドがあります。属性とはオブジェクトが持つ値や状態を表し、メソッドとはオブジェクトが持つ操作を表します。
属性とは何か
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 25) print(person1.name) # "Alice"を出力 print(person1.age) # 25を出力
上記の例では、Personというクラスを定義し、そのクラスからperson1というインスタンスを生成しています。person1は、nameとageという2つの属性を持っています。それぞれの属性は、インスタンス変数として定義され、値が代入されています。属性には、インスタンス変数の他に、クラス変数や特殊メソッドによって定義される場合もあります。
Pythonにおいて、属性とはオブジェクトが持つ値や状態を表します。例えば、以下のようなコードを考えてみましょう。
メソッドとは何か
class Calculator: def __init__(self): self.result = 0 def add(self, num): self.result += num def subtract(self, num): self.result -= num calculator1 = Calculator() calculator1.add(3) calculator1.subtract(1) print(calculator1.result) # 2を出力
上記の例では、Calculatorというクラスを定義し、そのクラスからcalculator1というインスタンスを生成しています。calculator1は、addとsubtractという2つのメソッドを持っています。それぞれのメソッドは、オブジェクトの状態を変更する操作を行っています。
Pythonにおいて、メソッドとはオブジェクトが持つ操作を表します。例えば、以下のようなコードを考えてみましょう。
Pythonにおける属性の調べ方
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 25) print(dir(person1))
上記の例では、Personというクラスを定義し、そのクラスからperson1というインスタンスを生成しています。dir関数によって、person1が持つ属性のリストを取得し、それをprint関数で出力しています。
Pythonにおいて、オブジェクトが持つ属性を調べるには、dir関数を使います。例えば、以下のようなコードを考えてみましょう。
Pythonにおけるメソッドの調べ方
class Calculator: def __init__(self): self.result = 0 def add(self, num): self.result += num def subtract(self, num): self.result -= num calculator1 = Calculator() print(dir(calculator1)) calculator1.add(3) calculator1.subtract(1) print(calculator1.result) # 2を出力
上記の例では、Calculatorというクラスを定義し、そのクラスからcalculator1というインスタンスを生成しています。dir関数によって、calculator1が持つメソッドのリストを取得し、それをprint関数で出力しています。また、addメソッドとsubtractメソッドを呼び出して、オブジェクトの状態を変更しています。
Pythonにおいて、オブジェクトが持つメソッドを調べるには、dir関数を使います。ただし、dir関数によって取得できるメソッドには、特殊メソッドも含まれるため、単純に取得したメソッド名を呼び出すことはできません。例えば、以下のようなコードを考えてみましょう。
属性とメソッドの違いとは
class Person: def __init__(self, name, age): self.name = name self.age = age def greet(self): print("Hello, my name is " + self.name) person1 = Person("Alice", 25) person1.greet() # "Hello, my name is Alice"を出力
上記の例では、Personというクラスを定義し、そのクラスからperson1というインスタンスを生成しています。person1は、nameとageという2つの属性を持っています。また、Personクラスには、greetというメソッドが定義されており、person1はこのメソッドを持っています。greetメソッドは、自己紹介をするためのメソッドであり、オブジェクトの状態を変更するわけではありません。
属性とメソッドの違いは、オブジェクトが持つものの種類にあります。属性はオブジェクトが持つ値や状態を表し、メソッドはオブジェクトが持つ操作を表します。例えば、以下のようなコードを考えてみましょう。
まとめ
Pythonにおいて、オブジェクトには属性とメソッドがあります。属性はオブジェクトが持つ値や状態を表し、メソッドはオブジェクトが持つ操作を表します。属性やメソッドを調べるには、dir関数を使います。属性とメソッドの違いは、オブジェクトが持つものの種類にあります。属性はオブジェクトが持つ値や状態を表し、メソッドはオブジェクトが持つ操作を表します。