我已经编写了以下函数,它接受了一个变量input_name
。然后,用户输入一些分配给input_name
的值。我想知道在函数之外访问input_name
的最佳方法。我知道,在函数内部将变量定义为全局变量,意味着它可以在函数外部使用。然而,在这种情况下,变量实际上是函数的一个参数,所以我不知道如何将其定义为全局变量。我很感激任何帮助,请在下面找到有问题的代码:
def input(input_name, prompt):
while True:
data = raw_input(prompt)
if data:
try:
input_name = int(data)
except ValueError:
print 'Invalid input...'
else:
if input_name >= 0 and input_name < 100:
print 'Congratulations'
break
input_name = 'Please try again: '
else:
print 'Goodbye!'
break
month = 0
day = 0
year = 0
century = 0
input(month, "Please enter the month (from 1-12, where March is 1 and February is 12): ")
input(day, "Please enter the day (from 1-31): ")
input(year, "Please enter the year (from 0 - 99, eg. 88 in 1988): ")
input(century, "Please enter the century (from 0 - 99, eg. 19 in 1988): ")
A = month
B = day
C = year
D = century
最简单的方法是返回值,并在函数外赋值:
def my_input(prompt):
#.. blah blah..
return the_value
month = my_input("Please enter the month")
# etc.
其他人在说这样的话:
def input(prompt):
return value
value = input(param1,param2, ...)
这就是你真正想做的,但你知道,你可以使用globals()来更改全局变量:
def input(input_name, prompt):
globals()[input_name] = value
您想要做的可能是一种糟糕的做法。只需从input
函数返回input_name
。
def input(param1,param2):
return value
value = input(param1,param2, ...)