2016-11-19 73 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 –

相关问题