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

时间:2015-07-03 15:22:06

标签: python input global-variables

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

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) 

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

3 个答案:

答案 0 :(得分:1)

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

示例 -

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)

答案 1 :(得分:0)

为什么要使用这样的全球?如果你更清洁,更清晰:

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)

答案 2 :(得分:0)

您无法以您想要的方式访问全局。如果你想能够选择"你可以做的全球:

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)