私はPythonでクラスを学習していますが、クラス定義内でそれらを使用するマジックメソッドまたは特殊メソッドと呼ばれるいくつかの関数を見つけました。質問は次のとおりです。
オリジナルの組み込み関数の前後に二重下線を追加すると、たとえば、クラス内でそれらすべてを使用して同じタスクを実行できるようになります。
>>> int (3.6)
3
>>> str(3.7)
'3.7'
そして、次のようにクラスで strを使用できます。
class Character:
def __init__(self, name, initial_health):
self.name = name
self.health = initial_health
self.inventory = []
def __str__(self):
s = "Name: " + self.name
s += " Health: " + str(self.health)
s += " Inventory: " + str(self.inventory)
return s
def grab(self, item):
self.inventory.append(item)
def get_health(self):
return self.health
def example():
me = Character("Bob", 20)
print str(me)
me.grab("pencil")
me.grab("paper")
print str(me)
print "Health:", me.get_health()
example()
結果 :
Name: Bob Health: 20 Inventory: []
Name: Bob Health: 20 Inventory: ['pencil', 'paper']
Health: 20
すべての組み込み関数は魔法の(特別な)関数にすることができますか?
ありがとう。