我正在学习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
所有内置函数都可以是魔术(特殊)函数吗?
谢谢。