我有两个类,每个类有两个方法。在第一个类的方法中,他们正在创建第二个类的实例,然后调用第二个类的方法。
问题是在第二个类中,一个方法使用了同一个类中另一个方法返回的属性。一等方法调用二等方法时,不传递等效属性。
我的限制是我不能修改第一个类和第二个类的参数。这是代码的简化版本:
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)
答案 0 :(得分:0)
您似乎希望 Two
的每个实例在 One
上都有一个实例作为属性。尝试在构造函数 (__init__
) 中实例化:
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
答案 1 :(得分:-1)
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))
在类 temp
之外创建 Two()
变量。然后使用类 global
中的 Two()
关键字来访问它。现在最后打印所有结果。