Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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_Attributes - Fatal编程技术网

Python 将属性从一个类对象传递到另一个类对象

Python 将属性从一个类对象传递到另一个类对象,python,class,attributes,Python,Class,Attributes,我有两个类,每个类有两个方法。在第一个类的方法中,它们创建第二个类的实例,然后调用第二个类的方法 问题是,在第二个类中,一个方法使用同一类中另一个方法返回的属性。当第一类方法调用第二类方法时,不会传递等效属性 我的限制是,我不能修改第一个类,也不能修改第二个类的参数。以下是代码的简化版本: 在类Two()之外创建temp变量。然后使用类Two()中的global关键字访问它。现在,最后打印所有结果。看起来您希望Two的每个实例都有一个One上的实例作为属性。尝试在构造函数中实例化(\uuu

我有两个类,每个类有两个方法。在第一个类的方法中,它们创建第二个类的实例,然后调用第二个类的方法

  • 问题是,在第二个类中,一个方法使用同一类中另一个方法返回的属性。当第一类方法调用第二类方法时,不会传递等效属性

  • 我的限制是,我不能修改第一个类,也不能修改第二个类的参数。以下是代码的简化版本:


    在类
    Two()之外创建
    temp
    变量。然后使用类
    Two()
    中的
    global
    关键字访问它。现在,最后打印所有结果。

    看起来您希望
    Two
    的每个实例都有一个
    One
    上的实例作为属性。尝试在构造函数中实例化(
    \uuuu init\uuu
    ):

    class One():
        def f1(self,x,y):
            self.model=(x+y)
            return self.model
        def f2(self,z):
            return self.model*z
    
    class Two():
        def f1(self,x2,y2):
            temp=One()
            return temp.f1(x2,y2)
        def f2(self,z2):
            return temp.model*z2
        
    object1=One()
    object1.f1(2,3)
    object1.f2(4)
    
    object2=Two()
    object2.f1(1,2)
    object2.f2(9)
    
    class One():
        def f1(self,x,y):
            self.model=(x+y)
            return self.model
        def f2(self,z):
            return self.model*z
        
    temp=One()
    class Two():
        global temp
        def f1(self,x2,y2):
            return temp.f1(x2,y2)
        def f2(self,z2):
            return temp.model*z2
        
    object1=One()
    print(object1.f1(2,3))
    print(object1.f2(4))
    
    object2=Two()
    print(object2.f1(1,2))
    print(object2.f2(9))
    
    class Two():
        def __init__(self):
            self.one = One()
        def f1(self,x2,y2):
            return self.one.f1(x2,y2)
        def f2(self,z2):
            return self.one.model*z2