函数 called/referred 何时执行,何时执行?
When is a function called/referred to and when is it being executed?
我对 Python 比较陌生,我有一个(我猜)关于 Python 函数的非常基本的问题。
我正在重新观看基础教程,以便真正了解更多结构,而不仅仅是使用它们。我使用了教程中的一些基本代码并尝试了不同的简单变体,但我不完全了解结果以及何时引用函数,即何时调用其 return 值以及何时执行.
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())
我原以为它会打印 "None",因为打印正在寻找函数的 return 值来打印它,但 example() 没有 return 值。相反,正在打印 6、11 和 None。所以我假设 print(example()) 调用 example() 的 return 值来打印它,但之前也执行该函数。 (如有错误请指正。)
即使我只是在函数定义后将 return 值分配给变量 x = example() ,它也会执行函数并打印 6 然后 11.
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
x = example()
一个函数是不是写出来了就一直在执行? (def 除外)
有没有办法在不完全执行的情况下使用函数 return 值?
例如,如果我有一个更复杂的代码并且在某些时候我想使用一个函数 return 值但不希望它是 运行.
提前致谢!
您对函数 return 和函数的作用感到困惑。
在您的例子中,您有一个包含两个 print()
语句的函数。这些语句与函数 return 的值无关,并且会在每次调用函数 example()
.
时打印它们的相应值
函数的 return 值是使用 return
关键字定义的,如果未定义则为 None
。显然需要执行该函数才能使其达到 return 一个值。
你说的似乎总体上是正确的,即使它似乎与你的预期不符。
一般可以看成,当函数最后有括号时,即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)
调用这个函数会很快return3
,因为当我们点击return 3
时函数停止执行。另一方面,通过 calculate_thing(shortcut=False)
或 calculate_thing()
调用它(False
是 shortcut
的默认值)将使函数 运行 暂时,做一些计算,然后它 returns 分配给变量 result_of_calculations
.
的任何值
一个函数做某事,它实际上执行一个功能。如果您希望该函数在执行其工作时向您显示结果,您可以 print() 事情。如果你只是想让它完成它的工作并保存结果供以后使用,你可以 return 将它们保存到调用该函数的变量中。你可以两者都做!
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'
我对 Python 比较陌生,我有一个(我猜)关于 Python 函数的非常基本的问题。
我正在重新观看基础教程,以便真正了解更多结构,而不仅仅是使用它们。我使用了教程中的一些基本代码并尝试了不同的简单变体,但我不完全了解结果以及何时引用函数,即何时调用其 return 值以及何时执行.
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())
我原以为它会打印 "None",因为打印正在寻找函数的 return 值来打印它,但 example() 没有 return 值。相反,正在打印 6、11 和 None。所以我假设 print(example()) 调用 example() 的 return 值来打印它,但之前也执行该函数。 (如有错误请指正。)
即使我只是在函数定义后将 return 值分配给变量 x = example() ,它也会执行函数并打印 6 然后 11.
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
x = example()
一个函数是不是写出来了就一直在执行? (def 除外) 有没有办法在不完全执行的情况下使用函数 return 值? 例如,如果我有一个更复杂的代码并且在某些时候我想使用一个函数 return 值但不希望它是 运行.
提前致谢!
您对函数 return 和函数的作用感到困惑。
在您的例子中,您有一个包含两个 print()
语句的函数。这些语句与函数 return 的值无关,并且会在每次调用函数 example()
.
函数的 return 值是使用 return
关键字定义的,如果未定义则为 None
。显然需要执行该函数才能使其达到 return 一个值。
你说的似乎总体上是正确的,即使它似乎与你的预期不符。
一般可以看成,当函数最后有括号时,即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)
调用这个函数会很快return3
,因为当我们点击return 3
时函数停止执行。另一方面,通过 calculate_thing(shortcut=False)
或 calculate_thing()
调用它(False
是 shortcut
的默认值)将使函数 运行 暂时,做一些计算,然后它 returns 分配给变量 result_of_calculations
.
一个函数做某事,它实际上执行一个功能。如果您希望该函数在执行其工作时向您显示结果,您可以 print() 事情。如果你只是想让它完成它的工作并保存结果供以后使用,你可以 return 将它们保存到调用该函数的变量中。你可以两者都做!
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'