2017-02-09 111 views
0

我已经在两个文件中以下代码:的Python在一个文件传递变量从类到另一个文件

operation1.py

class App_Name(): 
    def __init__(self): 
     self.type_option = "" 

    def Intro(self): 
     self.type_option = input("Chose one option: ") 
... 

start = App_Name() 
start.Intro() 

menu.py

from operation1 import App_name 

aP = App_Name() 

if aP.type_option == 1: 
    do smth 
elif aP.type.type_option == 2: 
    do smth 2 

如果i型1 ,我期望从第一个if条件运行命令。当我尝试打印App_name.type_option它似乎是空的。我如何将aP.type_option的值传递给menu.py?

+0

'option'只有1'p'。你正在定义2个不同的变量... –

+0

我在这里键入代码,没有复制它 - 这是错字 – Fangir

+0

问题:'如果aP.type_option == 1:'不能发生:'type_option'是一个字符串python 3. –

回答

0

startaP是2个不同的情况。由于type_option绑定到一个实例,因此start.type_option包含输入(字符串),而aP.type_option包含您在__init__方法中设置的空字符串。

删除startoperation1模块的实例,或者在导入时会提示您!

然后修复menu.py如下:

from operation1 import App_name 

aP = App_Name() 
aP.Intro() 

if aP.type_option == "1": 
    do smth 
elif aP.type.type_option == "2": 
    do smth 2 

(注意比较必须对字符串进行因为Python 3 input返回字符串,不评估像Python 2 input没有文字)

+0

如何从' operation1.py? – Fangir

+0

尝试'operation1.start.type_option',在这种情况下你不需要'menu.py'中的实例。 –

相关问题