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())
我本来希望这会打印“无”,因为 print 正在寻找函数的返回值来打印它,但 example() 没有返回值。相反,正在打印 6、11 和 None。所以我假设 print(example()) 调用 example() 的返回值来打印它,但之前也会执行该函数。(如果我错了,请纠正我。)。
即使我只是在函数定义后将返回值分配给变量 x = example(),它也会执行该函数并打印 6 和 11。
x=6
def example():
globx = x
print(globx)
globx+=5
print(globx)
x = example()
一个函数在写出时总是被执行吗?(除了在def中)有没有办法在没有完全执行的情况下使用函数返回值?例如,如果我有一个更复杂的代码,并且在某些时候我想使用函数返回值但不希望它运行。
提前致谢!
解决方案
您对函数返回的内容和函数的作用感到困惑。
在您的情况下,您有一个具有两个print()
语句的函数。这些语句与函数将返回的值无关,并且会在每次调用函数时打印相应的值example()
。
函数的返回值使用return
关键字定义,如果未定义,则为None
. 显然,需要执行该函数才能使其返回值。
推荐阅读
- c# - ASP.net 表不会在“tbody”中显示项目
- vba - Excel Web Scraper - 受密码保护的网站
- jquery - jQuery ajax 处理 204 No Content
- r - 是否可以在 DT 数据表中添加复选框?
- java - 返回意外结果的 Java 方法
- mysql - 从包含的连接创建临时表+ 6500万条记录Mysql
- mysql - SQL多个更新查询一个接一个
- r - 如何使用对象名称从环境对象创建命名列表或向量?
- ios - 即使设置了高度,UIScrollView 也无法正常工作
- node.js - 如何将 create-react-app 作为大型网站的子目录提供服务?