我有一個類DifferentialExtension
:與屬性不可變類積聚
class DifferentialExtension(object):
__slots__ = ('f', 'x', 'D', 'T')
def __init__(self, f=None, x=None):
/*
# some code that builds up list 'self.D'
*/
self.D = tuple(self.D)
return None
我使課堂「不可改變的」,即對象使用DifferentialExtension
不應該被允許更改屬性「d」創建(在__init__
完成後),這些屬性都不會被分配給新的對象。 D
不需要爲list
,最終返回時可以是tuple
。
In [1]: DE = DifferentialExtension(log(x), x)
In [2]: DE.D
Out[2]: ((Poly(1, x, domain='ZZ'), Poly(1/x, t0, domain='ZZ(x)'))
In [3]: DE.D = (1, 5, 5) # raises Error.