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関数を使います。属性とメソッドの違いは、オブジェクトが持つものの種類にあります。属性はオブジェクトが持つ値や状態を表し、メソッドはオブジェクトが持つ操作を表します。





