如果我有这样的课程
class foo():
def __init__(self, value = 0):
self.__value = value
def __set__(self, instance, value):
self.__value = value
def calc(self):
return self.__value * 3
def __repr__(self):
return str(self.__value)
我现在可以创建类foo的变量并使用它的函数。
n = foo(3)
print(n.calc())
那里没有问题,但如果我继续这样的话。
n = 5
print(n.calc())
我会收到一个错误,因为我现在将n设置为值为5的int对象,因此没有calc()函数。
我通常使用C ++,所以我很困惑,因为我认为 __ set __ 函数应该覆盖=运算符,然后将 __ value 设置为值5就像我要使用
一样operator=(int value)
在C ++中,我找了一个解释但没找到任何解释。
所有帮助表示赞赏。