1

同じ変数を操作する 2 つのクラスがありますが、互いに逆になります。すべての交換をハードコーディングしたり、すべての値を 1 つの配列に結合したりせずに、それらの間で変数を転送する方法はありますか? クラスを組み合わせることはオプションではありません。

#pseudocode

class class1:
   def __init___(self):
      # code
      initialize variable MAIN

   # do stuff
   # do stuff
   make variable stuff
   # do stuff
   make variable thing
   # do stuff

class class2:
   def __init___(self):
      # code
      initialize variable stuff
      initialize variable thing
   # do stuff
   # do stuff
   undo variable stuff
   # do stuff
   undo variable thing
   # do stuff
   make variable MAIN

class1との間でclass2すばやくデータをやり取りできるようにしたい。

4

2 に答える 2

2

共有データを 3 番目のオブジェクトに入れ、両方のクラスから参照します。

于 2010-12-31T18:10:16.423 に答える
2

これはあなたが思っているよりずっと簡単だと思います。以下は、2 つのクラス間でデータを「送信」する例です。

class class2(object):
    def __init__(self, other):
        self.other = other

    def set_color(self, color):
        self.color = color
        # "Sending" to other class:
        self.other.color = color

    def set_smell(self, smell, associated_object):
        self.smell = smell
        associated_object.smell = smell

このような使い方:

>>> ob1 = class1()
>>> ob2 = class2(ob1)
>>> ob2.set_color("Blue")
>>> ob1.color
"Blue"

>>> ob2.set_smell("Good", ob1)
>>> ob1.smell
"Good"
于 2010-12-31T18:23:05.997 に答える