我是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())
由于打印正在寻找要打印的函数的返回值,但example()不会返回值,所以我希望它能打印“无”。而是打印6、11和无。所以我假设print(example())调用example()的返回值来打印它,但是在执行该函数之前。 (如果我做错了,请纠正我。)
即使我只是在函数定义后将返回值分配给变量x = example(),它也会执行该函数并打印6,然后是11。
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
x = example()
函数在被写出时是否总是在执行? (在ecxcept中) 有没有一种方法可以在没有完全执行函数的情况下利用它的返回值? 例如,如果我有一个更复杂的代码,并且在某个时候我想利用一个函数的返回值,但又不想运行它。
谢谢!
答案 0 :(得分:0)
您对函数返回什么和函数做什么感到困惑。
在您的情况下,您有一个包含两个print()
语句的函数。这些语句与函数将返回的值无关,并且在每次调用函数example()
时都会打印相应的值。
该函数的返回值使用return
关键字定义,如果未定义,则返回值None
。显然,需要执行该函数才能使其返回值。
答案 1 :(得分:0)
您说的话似乎是正确的,即使看起来超出您的预期。
通常,您可以看到它是,当函数的末尾带有括号,即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
的默认值)会使函数运行一段时间,并进行一些计算,然后然后它将返回分配给变量result_of_calculations
的任何值。
答案 2 :(得分:0)
函数执行某项操作,实际上是执行一个函数。如果您希望该函数在执行工作时显示结果,则可以print()。如果只希望它完成其工作并保存结果以备后用,则可以将它们返回到调用该函数的变量中。你们两个都可以!
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'