2017-02-09 73 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'中的實例。 –

相關問題