繁体   English   中英

如何在python方法中使全局变量等于用户输入?

[英]How can i make a global variable equal to the user's input within a method in python?

如何在方法中将全局变量设置为等于用户输入? 例如,我尝试执行以下代码,但不起作用。

def ask_question(var, question):
    global var
    var = str(input(question))

ask_question(name, "what's your name?")
print("Welcome",name)

如果我这样做是可行的。

def ask_question(ques):
    global name
    name = str(input(ques))

ask_question("what's your name?")
print("Welcome",name) 

但是然后我无法在调用方法时更改变量。 例如,如果我也想询问用户的年龄等。

为什么不能使函数仅返回输入的字符串?

范例-

def ask_question(ques):
   return str(input(ques))

然后,您可以将返回的字符串分配给脚本中的变量,如下所示:

name = ask_question("what's your name?")
print("Welcome",name) 
age = ask_question("what's your age?")
print("Your age is ", age)

为什么要使用这样的全局变量? 如果您:

def ask_question(ques):
    return str(input(ques))

name = ask_question("what's your name?")
print("Welcome",name)

age = ask_question("what's your age?")
print("You're this old:",age)

您无法以所需的方式访问全局。 如果希望“选择”全局变量,可以执行以下操作:

def ask_question(var, question):
    globals()[var] = str(input(question))

ask_question("name", "what's your name?")
print("Welcome",name)

但是我同意其他人的看法,做这样的事情会更加清晰:

def ask_question(question):
    return str(input(question))

name = ask_question("what's your name?")
print("Welcome",name) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM