2017-08-10 21 views
1

私は属性の属性をPythonで作成しようとしています。 はそうするが方法です:Pythonで属性の属性を定義する方法

class Foo(): 
    def __init__(self, x, y): 
     self.x = x 
     self.x.y = y 

は、私はそれを行う方法を見当がつかない、私はいくつかの例をチェック。しかし、私は似たような例は見つけていません。

あなたは(たとえば)このような何かを行うことができます必要なもの

答えて

1

ない正確クリア:

class Bar(object): 
    def __init__(self, y=None): 
     self.y = y 

class Foo(object): 
    def __init__(self, x, y): 
     self.x = x 
     self.x.y = y 

if __name__ == '__main__': 
    x = Bar() 
    y = 1 
    foo = Foo(x,y) 
+0

私は、x =はFoo(1,2)、あなたの方法を試してみましたが、プログラムははAttributeError投げる:「int型のオブジェクトを属性 'y'がありません – Saba

+0

これは正しいです。任意のデータ型に属性を付けることはできません。データ型には、 '1' - ' int'にはない 'y'というパラメータが必要です。 –

+2

@Radekhofmanはあなたのオブジェクトにのみ当てはまります '__slots__'(これは' int')です。そうでなければオブジェクトに属性を動的に割り当てることができます –

関連する問題