何时调用/引用函数,何时执行?

2024-06-30 16:43:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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())

我本来希望它打印为“None”,因为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) 有没有一种方法可以在函数返回值没有完全执行的情况下使用它? 例如,如果我有一个更复杂的代码,在某个时候我想使用函数返回值,但不希望它运行

提前谢谢


Tags: 函数代码none定义exampledef教程变体
3条回答

你会被函数返回什么和函数做什么弄糊涂

在您的例子中,有一个函数有两个print()语句。这些语句与函数将返回的值无关,并将在每次调用函数example()时打印相应的值

函数的返回值是使用return关键字定义的,如果没有定义,则返回值是None。显然,为了让函数返回一个值,需要执行函数

一个函数做某事,它实际上执行一个函数。如果希望该函数在执行其任务时显示结果,可以打印()内容。如果您只想让它完成它的工作并保存结果以备以后使用,那么可以将它们返回到调用函数的变量。你两个都可以

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'

你所说的似乎是完全正确的,即使它似乎偏离了你的预期

通常,您可以将其视为,当函数末尾有圆括号时,即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的任何值

相关问题 更多 >