[英]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.