この動作を模倣するクラスを作成する必要があります (数学では、list、dictは「べき等」であると言います)。
>>> list(list([3,4]))
[3, 4]
>>> dict({'a':1,'b':2})
{'a':1,'b':2}
だから、Aが私のクラスなら、私は書きたい
>>> a = A(1)
>>> b = A(a)
>>> b == a
True
私のクラスAは次のように見える必要があると思います:
class A(object):
def __init__(self,x):
if isinstance(x, A) :
self = x
else :
self.x = x
self.y = 'hello'
やってみる
>>> A(1).x
1
>>> A(A(1)).x
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'A' object has no attribute 'x'
それは動作しません !
x属性をselfにコピーしたくありません。selfをxまたは "point" xにしたいだけです。
いくつかのアイデア?ありがとう