0

私はこの種のコードを持っています。

class typeOne(self, obj):
  ....
  def run():
    # I want to call the funct() from typeTwo


class typeTwo(self, obj2):
  ...
  def funct():
    ...

class typePlayer(self, obj3):
  ...
  tT = typeTwo()
  ...
  tT.funct()
    .....

typePlayerで呼び出されたtypeOneクラスからtypeTwoクラスを参照したい。

私はこれを試しました。

class typeOne:
  ....
  mytT = typeTwo() # another probs here is that how can I get the 'obj2'?
  def run():
     mytT.funct()

しかし、それは新しい typeTwo() クラスを作成し、私はそれを必要としません。既存の typeTwo() クラスを呼び出したいだけで、typePlayer() クラスによって実行された typeTwo() クラスを作成したくありません。

誰かがこれについて考えていますか?

4

2 に答える 2

0

あるクラスが別のクラスの特定のインスタンスにアクセスする必要がある場合、通常の解決策は、インスタンス化するときに必要なインスタンスを最初のクラスに渡すことです。例えば:

class TypeOne(object):

  def __init__(self, myt2=None):
     self.myt2 = myt2 or TypeTwo()  # create instance if none given 

  def run():
     self.myt2.funct()

次に、次のようにして両方をインスタンス化します。

myt2 = TypeTwo()
myt1 = TypeOne(myt2)

もちろん、何も渡されない場合にインスタンスTypeOneを作成するように記述されているため、逆の方法でインスタンスを作成し、インスタンスからそれを取得することもできます。TypeTwoTypeOneTypeTwoTypeOne

myt1 = TypeOne()   # creates its own TypeTwo instance
myt2 = myt1.myt2   # retrieves that instance for outside use
于 2013-09-15T14:46:09.440 に答える