引用其他函数输出的函数 - Python

时间:2015-03-28 20:29:33

标签: python function random nameerror defined

我一直无法获得依赖于另一个函数输出的函数。当我运行以下代码时(这是一个非常简化的版本)...

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()生成的随机数?

2 个答案:

答案 0 :(得分:0)

一种简单的方法是使用returnargs

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}}
相关问题