什么时候调用/引用函数,什么时候执行?

时间:2019-04-13 14:38:26

标签: python function return call

我是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中) 有没有一种方法可以在没有完全执行函数的情况下利用它的返回值? 例如,如果我有一个更复杂的代码,并且在某个时候我想利用一个函数的返回值,但又不想运行它。

谢谢!

3 个答案:

答案 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()调用它(Falseshortcut的默认值)会使函数运行一段时间,并进行一些计算,然后然后它将返回分配给变量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'