如果我尝试运行以下代码:
def func():
a = 5
print 'done'
return a
temp = raw_input('')
if temp == '':
func()
print func()
说温度是''并运行该功能。它打印完成并返回变量a。如何在不再运行该函数的情况下打印返回的变量,这样就不会再次打印?
答案 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