2019-09-02 |

魔术方法

魔术方法是一种特殊的方法,在名字的开头和结尾有两个下划线。
他们也被称为 dunders。
到目前为止,我们所遇到的唯一一个是第二个,但还有几个。 它们用于创建不能被表示为正常方法的功能。 其中一个常见的用法是运算符重载。 这意味着为自定义类定义运算符,这些操作符允许操作符如+和*用于它们。

一个示例性的魔术方法__add__ :

 
class Vector2D:
  def __init__(self, x, y):
    self.x = x
    self.y = y
  def __add__(self, other):
    return Vector2D(self.x + other.x, self.y + other.y)

first = Vector2D(5, 7)
second = Vector2D(3, 9)
result = first + second
print(result.x)
print(result.y)

结果:

 
>>>
8
16    
>>>
__add__方法允许定义类中的+运算符的自定义行为。
如您所见,它添加对象的相应属性,并返回包含结果的新对象。
一旦它被定义,我们就可以把两个类的对象加在一起。
__jnit__方式是类的初始化
 

0

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论