我一直无法获得依赖于另一个函数输出的函数。当我运行以下代码时(这是一个非常简化的版本)...
from random import randint
def event():
if m == 1:
r = randint(0, 4)
else:
r = randint(3, 7)
def random():
if r == 1:
print "Test A"
elif r == 2:
print "Test B"
elif r == 3:
print "Test C"
elif r == 4:
print "Test D"
elif r == 5:
print "Test E"
elif r == 6:
print "Test F"
m = 1
event()
random()
m = 2
event()
random()
m = 3
event()
random()
......我得到NameError: global name 'r' is not defined
我需要将它们保存在单独的函数中,因为在我的实际代码中它们非常复杂。如何让random()识别event()生成的随机数?
答案 0 :(得分:0)
一种简单的方法是使用return
和args
def event():
if m == 1:
r = randint(0, 4)
else:
r = randint(3, 7)
return r # return variable r here
r = event() # accept variable r here from event
random(r) # pass it to random function
def random(r) # receive r from the caller
.... # Use r as a variable
答案 1 :(得分:0)
虽然返回变量是实现目标的好方法,但有时您需要拥有global个变量。在这种情况下,请在分配global r
之前将event()
添加到def event():
global r
if m == 1:
r = randint(0, 4)
else:
r = randint(3, 7)
的定义中。 e.g:
{{1}}