Python:\uuuu setattr\uuuuu运算符重载
我制作了一个Poly类,它对多项式执行不同的重载操作 如果试图向多项式对象添加新属性(通过定义新属性或重新绑定现有属性),我希望引发AssertionErrorPython:\uuuu setattr\uuuuu运算符重载,python,operator-overloading,Python,Operator Overloading,我制作了一个Poly类,它对多项式执行不同的重载操作 如果试图向多项式对象添加新属性(通过定义新属性或重新绑定现有属性),我希望引发AssertionError 在setattr中如何执行此操作?您也可以尝试使用slots功能-它将引发属性错误 class Test(object): __slots__ = ['var'] def __init__(self, n): self.var = n y = Test(1) print y.var y.var = 2
在setattr中如何执行此操作?您也可以尝试使用slots功能-它将引发属性错误
class Test(object):
__slots__ = ['var']
def __init__(self, n):
self.var = n
y = Test(1)
print y.var
y.var = 2
print y.var
y.z = 4
print y.z
这就是你需要的吗
class CONST(object):
FOO = 1234
def __setattr__(self, *_):
raise AssertionError
const = CONST()
print const.FOO # 1234
const.FOO = 4321 # AttributeError