Python:打印一个函数,该函数在不运行函数的情况下返回值

时间:2015-08-29 00:43:17

标签: python python-2.7

如果我尝试运行以下代码:

def func():
    a = 5
    print 'done'
    return a
temp = raw_input('')
if temp == '':
    func()

print func()

说温度是''并运行该功能。它打印完成并返回变量a。如何在不再运行该函数的情况下打印返回的变量,这样就不会再次打印?

2 个答案:

答案 0 :(得分:3)

您应该将返回的值分配给变量(例如a)。

更新:您可以在函数(版本1)内打印或使用全局变量(版本2)

def func():
    a = 5
    print 'done'
    return a

# version 1: if print doesn't have to be outside of the function
def main():
    temp = raw_input('')
    if temp == '':
        local_a = func()
    else:
        # use else to avoid UnboundLocalError: local variable 'a' referenced
        # before assignment
        local_a = None
    print local_a


if __name__ == "__main__":
    main()


# # version 2: if print have to be outside of the function, then I can only
# # think of using global variable, but it's bad.
# global_a = None
# def main():
#     temp = raw_input('')
#     if temp == '':
#         global global_a
#         global_a = func()

# if __name__ == "__main__":
#     main()
#     print global_a

答案 1 :(得分:1)

您可以使用@ zyxue上面的答案并将返回值存储到变量中,或者您也可以不从函数返回任何内容,只需要将函数中的最终值分配给全局变量(如果有需要)为了那个原因。 我应该警告你,不必要地或过度地过度使用全局变量并不是一种好的做法。请参阅:https://stackoverflow.com/a/19158418/4671205