2014-11-04 141 views
0

我做了一個Poly類,它對多項式做了不同的過載操作。Python:__setattr__操作符重載

如果嘗試向多項式對象添加新屬性(通過定義新屬性或重新綁定現有屬性),我想引發一個AssertionError。

我該怎麼辦setattr

回答

1

您可以嘗試使用插槽功能以及 - 這將提高一個屬性錯誤

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 
0
class CONST(object): 
    FOO = 1234 

    def __setattr__(self, *_): 
     raise AssertionError 

const = CONST() 
print const.FOO # 1234 
const.FOO = 4321 # AttributeError 

這是什麼üNEDD?