2016-11-19 67 views
0

是否有可能在一個Python腳本中有多個全局變量?我可以在python腳本中有多個全局變量嗎?

import os,csv,random 

def user(): 
    global Forname 
    Forname = input('What is your forname? ').capitalize() 
while True: 
    try: 
     global answerr 
     answerr = input('Welcome to the phone troubleshooting system ' 
         '\nApple\nSamsung ' 
         '\nOut of the following options enter the name of the device you own ').lower() 
    except ValueError: 
     continue 
    if answerr in ('apple','samsung'): 
     break 
myfile = open(answerr+'_device.csv','r') 
answer = input(Forname + ', do you have anymore problems? ').lower() 
if 'yes' in answer: 
#do whatever 
else: 
#do whatever 

使用全局變量「answerr」我想開一個CSV文件,並指與他們的forName輸入的用戶,但我想通過高清之內我的代碼中多次使用它們功能。如果你不明白我在問什麼,我會提前道歉,鑑於我還是一名學校學生,我對編碼相對來說比較陌生。

回答

3

當然這是可能的。但是在這段代碼中絕對沒有理由使用任何全局變量,更不用說多個了。

函數的一點是,它可以返回值:

def user(): 
    forename = input('What is your forename? ').capitalize() 
    return forename 
+0

更妙的是重命名功能名稱爲'get_forename_from_user()' –

0

我能有一個Python腳本內的多個全局變量?

是和這裏的如何:

當你在像模塊的頂級分配任何變量:n = "Stackoverflow!"那麼你的自動變量是全球性的。所以我們可以說我們有這個模塊:

#globals.py 
x = 2 + 2 
y = 5 + x 

兩個xy是全局變量,這意味着他們對函數,類等訪問。 *請記住,模塊頂層的任何賦值實際上都是全局的(這就是我們所說的全局範圍,它可以包含儘可能多的變量,因爲您的內存允許)。這就像你發佈的代碼一樣。但是,我們不能在任何範圍相同的命名變量:

same = 20 
same = "s" 
print(same) 

將打印S,不是20

希望你會有所幫助:-)

+0

http://pastebin.com/s0yA5xET –

相關問題