2017-06-22 13 views
-2

私は、上記のクラスをインスタンス化し、それを別のクラスに渡すオブジェクトを取得したいと思います。だから私の質問は、私は内部のクラスをインスタンス化されたオブジェクトを取得しますか同じクラス(Python)内でクラスをインスタンス化したオブジェクトを取得する方法はありますか?

class BestFriends(): 
    def __init__(self, friend_obj): 
     pass 

class Friend(): 
    def __init__(self, selfobjfriends): 
     bff = BestFriends(selfobjfriends) 

def main(): 
    # Obviously won't work 
    mainobj = Friend(mainobj) 

です:

はこのような何かをされて、私が何をしたいのか私のコードは、この

class BestFriends(): 

class Friend(): 
    def __init__(self): 
     bff = BestFriends() 

def main(): 
    mainobj = Friend() 

のように見えると言います同じクラス?私がそれを得ると、私はそれを私が必要とする別のクラスに簡単に渡すことができると信じています。

+0

クラス定義を制御する場合、最も簡単な方法は、オブジェクトを参照する属性を追加することです。 –

+0

インスタンス化時に渡します。魔法の方法はありません。それらのオブジェクト間のリンクは、自分で作成しない限り存在しません。 – wim

+0

ここに「Friend」インスタンスを作成するオブジェクトはありません。 – user2357112

答えて

1

あなたが実際にしようとしているのは、それぞれが他のオブジェクトを参照する2つのオブジェクトを作成する場合ですが、いくつかの可能な解決策がありますが、実際にしようとしている現実世界のクラスに依存する可能性があります。

A(各クラスのインスタンスを1つだけ使用して)、それぞれが他を参照する2つのオブジェクトを構築するための非常に簡単な方法は次のとおりです。

class Bar: 
    def __init__(self, foo): 
     self.foo = foo 

class Foo: 
    def __init__(self): 
     self.bar = Bar(self) 

def main(): 
    foo = Foo() 
    print(foo, "has a Bar named", foo.bar) 
    bar = foo.bar 
    print(bar, "has a Foo named", bar.foo) 

これはあなたがやりたいしない場合は、それが役立つかもしれませんあなたが解決しようとしている元の問題を説明し、より具体的な回答を提供することができます。

+0

AhhはPythonの自己がオブジェクト自体を参照していることを完全に忘れてしまいました。ありがとう – Piyush

関連する問題