Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在类之间传递变量_Python_Class_Variables_Class Variables - Fatal编程技术网

Python 在类之间传递变量

Python 在类之间传递变量,python,class,variables,class-variables,Python,Class,Variables,Class Variables,我有两个类,它们对相同的变量进行操作,但它们之间是相反的。有没有一种方法可以在它们之间传递变量,而无需对每次交换进行硬编码或将所有值合并到一个数组中?组合这些类不是一种选择 #pseudocode class class1: def __init___(self): # code initialize variable MAIN # do stuff # do stuff make variable stuff # do stuff

我有两个类,它们对相同的变量进行操作,但它们之间是相反的。有没有一种方法可以在它们之间传递变量,而无需对每次交换进行硬编码或将所有值合并到一个数组中?组合这些类不是一种选择

#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
之间快速地来回发送数据。

将共享数据放入第三个对象并从两个类引用它。

将共享数据放入第三个对象并从两个类引用它。

我认为这比您想象的要容易得多。下面是一些在两个类之间“发送”数据的示例

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"

我认为这比你想象的要容易得多。下面是一些在两个类之间“发送”数据的示例

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"


举一个你正在谈论的例子可能会有所帮助。“做倒数”?“转移变量”?是的,就这么做吧!你尝试过什么,为什么不奏效?你的确切意思还不清楚。你能发布一个有效的例子吗?一个你正在谈论的例子可能会有所帮助。“做倒数”?“转移变量”?是的,就这么做吧!你尝试过什么,为什么不奏效?你的确切意思还不清楚。你能给出一个有效的例子吗?我特别说过,把数据放到第三个对象中是行不通的。编辑:是的,但一点也不冗长。不,你没这么说。:)你说把它们结合起来是行不通的。不同的事情。@calccrypto:“但它一点也不冗长。”。错误的它非常优雅,通过简单的重构很好地解决了您的所有问题。@s.Lott将所有具有相应名称的实例变量从一个类转移到另一个类将更加优雅。我想这就是这个问题要问的问题,但我还没有找到一种方法。我特别说过,把数据放到第三个对象中是行不通的。编辑:是的,但一点也不冗长。不,你没这么说。:)你说把它们结合起来是行不通的。不同的事情。@calccrypto:“但它一点也不冗长。”。错误的它非常优雅,通过简单的重构很好地解决了您的所有问题。@s.Lott将所有具有相应名称的实例变量从一个类转移到另一个类将更加优雅。我想这就是这个问题要问的问题,但我还没有找到一个方法。等等。。。self.other.color是如何到达ob1的?@calccrypto:Oups,我拼错了。固定的赛尔夫,另一个是ob1,我得到了一个负号!?哈,人们都很有趣。(没关系,反正我今天达到了名誉极限,所以没有丢分。)@calccrypto:是的,我不认为是你。只是很有趣,仅此而已。等等。。。self.other.color是如何到达ob1的?@calccrypto:Oups,我拼错了。固定的赛尔夫,另一个是ob1,我得到了一个负号!?哈,人们都很有趣。(没关系,反正我今天达到了名誉极限,所以没有丢分。)@calccrypto:是的,我不认为是你。这很有趣,仅此而已。