31

Python では、別のオブジェクト Bar を含む Foo などのオブジェクトを Bar 自体から取得することはできますか? ここに私が意味するものの例があります

class Foo(object):
    def __init__(self):
        self.bar = Bar()
        self.text = "Hello World"

class Bar(object):
    def __init__(self):
        self.newText = foo.text #This is what I want to do, 
                                #access the properties of the container object

foo = Foo()

これは可能ですか?ありがとう!

4

5 に答える 5

5

Bar 自体から別のオブジェクト Bar を含むオブジェクト、たとえば Foo を取得することは可能ですか?

言語はそのように構築されておらず、特に、言語は Foo が存在することを保証する方法がないように構築されているため、「自動的に」ではありません。

つまり、いつでも明示的に行うことができます。属性は、Python の他のすべての識別子と同様に単なる名前であり、データのストレージ スペースではありません。fooしたがって、 Bar インスタンスに Foo インスタンスである手動で割り当てられた属性を持たせること、およびその逆を同時に行うことを妨げるものは何もありません。

于 2012-05-29T00:00:08.583 に答える
-3

継承の使用についてはどうですか?

class Bar(object):
    def __init__(self):
        self.newText = self.text

class Foo(Bar):
    def __init__(self):
        self.txt = 'Hello World'
        Bar.__init__(self)

foo = Foo()
print foo.newText
于 2012-05-29T00:35:18.063 に答える