魔术方法
魔术方法可以看作是 Python 的管道。它们被称为“底层”方法,用于某些内置的方法、符号和操作。你可能熟悉的常见魔术方法是 __init__() ,当我们想要初始化一个类的新实例时,它会被调用。
你可能已经看过其他常见的魔术方法,如 __str__ 和 __repr__ 。Python 中有一整套魔术方法,通过实现其中的一些方法,我们可以修改一个对象的行为,甚至使其行为类似于内置数据类型,例如数字、列表或字典。
记得关注小编后私信【学习】即可免费领取Python学习大礼包哦。
让我们创建一个 Money 类来示例:
class Money: currency_rates = { '$': 1, '€': 0.88, } def __init__(self, symbol, amount): self.symbol = symbol self.amount = amount def __repr__(self): return '%s%.2f' % (self.symbol, self.amount) def convert(self, other): """ Convert other amount to our currency """ new_amount = ( other.amount / self.currency_rates[other.symbol] * self.currency_rates[self.symbol]) return Money(self.symbol, new_amount)
该类定义为给定的货币符号和汇率定义了一个货币汇率,指定了一个初始化器(也称为构造函数),并实现 __repr__ ,因此当我们打印这个类时,我们会看到一个友好的表示,例如 $2.00,这是一个带有货币符号和金额的 Money('