【发布时间】:2016-04-12 13:39:13
【问题描述】:
class MyClassA(object):
def __init__(self):
entry = input("Insert a value ::: ")
b = MyClassB(entry) #To pass the variable entry to class MyClassB
c = MyClassC() #Initializied MyClassC to be ready for receive the value p
self.x = b.f #To get back the value f from MyClassB
print(self.x)
self.x1 = c.p #To get back the value f from MyClassC
print(self.x1)
class MyClassB(object):
def __init__(self, M):
self.f = M * 10 # f will contain (the value entry from MyClassA *10)
c = MyClassC(self.f) #To pass variable f to class MyClassC
class MyClassC(object):
def __init__(self,passedVar):
self.p = passedVar + 0.1 # p will contain (the value entry from MyClassB + 0.1)
h = MyClassA()
上面是我的示例代码,首先它会要求一个值并将其存储到名为entry的变量中。
然后第二个名为MyClassB的类将恢复entry中的值,在处理完入口值后,一个新的将存储到名为f的新变量中,该变量将传递给名为MyClassC的第三类,然后也返回到头等舱。
最后,第三个类对f 值进行一些处理,并将其存储到另一个变量p。
当用户运行程序时,我的代码应该是这样工作的,这就是它的样子:
Insert a value ::: 9 (assume the user typed 9 here)
所以输出应该是:
90
90.1
不幸的是,我的问题是将值从MyClassC 传递给myClassA 不起作用。
它说我必须从第一类传递两个参数,但它会在执行第二类后获得值。
我认为我在初始化实例时遇到问题,有人可以更正我的代码以按照我描述的方式工作吗?
【问题讨论】:
-
添加了答案,您缺少输入..
-
您不应该使用
__init__进行输入/输出。
标签: python python-2.7 class python-3.x