[英]When is a function called/referred to and when is it being executed?
我对Python比较陌生,我对Python中的函数有一个(我猜)非常基本的问题。
我正在重写基础教程,以便真正了解更多结构,而不仅仅是使用它们。 我使用了教程中的一些基本代码并尝试了不同的简单变体,并且我不完全理解结果以及何时引用函数,即何时调用其返回值,以及何时执行它。
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
example()
这定义了函数,然后调用它来执行它,当它被执行时,它打印6然后按预期打印11。
现在:
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
print(example())
我本来希望这打印“无”,因为print正在寻找函数的返回值来打印它,但是example()不返回值。 而是打印6,11和无。 所以我假设print(example())调用example()的返回值来打印它,但在执行函数之前。 (如果我弄错了,请纠正我。)
即使我只是在定义函数后将返回值赋值给变量x = example(),它也会执行函数并打印6然后再打印11。
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
x = example()
函数在写出时是否总是被执行? (在def中的Ecxcept)有没有办法在没有完全执行的情况下使用函数返回值? 例如,如果我有一个更复杂的代码,并且在某些时候我想使用函数返回值但不希望它运行。
提前致谢!
您对函数返回的内容以及函数的作用感到困惑。
在您的情况下,您有一个具有两个print()
语句的函数。 这些语句与函数返回的值无关,并将在函数example()
每次调用时打印相应的值。
函数的返回值是使用return
关键字定义的,如果未定义,则为None
。 显然,需要执行该函数以使其返回值。
你说的话似乎总体上是正确的,即使它看起来像你期望的那样。
通常,您可以将其视为,当函数末尾有括号时,即example()
,执行该函数。
您的上一个问题有点模糊,但您可以通过在函数内部使用return
关键字在某个时刻停止执行该函数。 这在例如执行一些资源密集型计算的函数中是有意义的,但偶尔也有机会采用快捷方式。
举个例子
def calculate_thing(shortcut = False):
if shortcut:
return 3
# Resource-intensive, time-consuming calculations go here
return result_of_calculations
使用calculate_thing(shortcut=True)
调用此函数将快速返回3
,因为当我们点击return 3
时函数停止执行。 另一方面,通过calculate_thing(shortcut=False)
或calculate_thing()
( False
是shortcut
的默认值calculate_thing()
调用它将使函数运行一段时间,进行一些计算,然后返回分配给它的任何值。变量result_of_calculations
。
函数做某事,它实际上执行一个函数。 如果您希望该功能在其完成工作时向您显示结果,则可以打印()事物。 如果您只是希望它完成其工作并保存结果以供日后使用,则将它们返回到调用该函数的变量。 你可以做到这两点!
def just_print(input):
print('Here is a function printing!', input)
just_print('cool!')
>> 'Here is a function printing!', 'cool!'
def return_value(input):
return 'Hello ' + input
# We can store the return for future use
save_return_val = return_value('Ari')
print(save_return_val)
>> 'Hello Ari'
# Just print it
print(return_value('Ari'))
>> 'Hello Ari'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.