を私はクラス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.