内联函数函数不必在单独的文件中创建 。如果你只是针对一个任务编写一个简短的脚本 , 那么在同一个文件中编写函数可能更有意义 。唯一的区别是你不必导入自己的模块 , 但函数的工作方式是一样的 。以下是时间测试应用程序的最新迭代:
#!/usr/bin/env python3import timetotal = 0def Timer(msg): print(str(msg) + str(time.time() ) ) charge = .02 return chargeprint("Press RETURN for the time (costs 2 cents).")print("Press Q RETURN to quit.")while True: kbd = input() if kbd.lower() == "q": print("You owe $" + str(total) ) exit() else: charge = Timer("Time is ") total = total+charge它没有外部依赖(Python 发行版中包含 time 模块) , 产生与模块化版本相同的结果 。它的优点是一切都位于一个文件中 , 缺点是你不能在其他脚本中使用 Timer() 函数 , 除非你手动复制和粘贴它 。
全局变量在函数外部创建的变量没有限制作用域 , 因此它被视为 全局 变量 。
全局变量的一个例子是在 charge.py 中用于跟踪当前花费的 total 变量 。total 是在函数之外创建的 , 因此它绑定到应用程序而不是特定函数 。
应用程序中的函数可以访问全局变量 , 但要将变量传入导入的模块 , 你必须像发送 msg 变量一样将变量传入模块 。
全局变量很方便 , 因为它们似乎随时随地都可用 , 但也很难跟踪它们 , 很难知道哪些变量不再需要了但是仍然在系统内存中停留(尽管 Python 有非常好的垃圾收集机制) 。
但是 , 全局变量很重要 , 因为不是所有的变量都可以是函数或类的本地变量 。现在你知道了如何向函数传入变量并获得返回 , 事情就变得容易了 。
总结你已经学到了很多关于函数的知识 , 所以开始将它们放入你的脚本中 —— 如果它不是作为单独的模块 , 那么作为代码块 , 你不必在一个脚本中编写多次 。在本系列的下一篇文章中 , 我将介绍 Python 类 。
推荐阅读
- 如何设计实现一个通用的分布式事务框架?
- 建筑类哪个专业前景好 建筑类专业就业前景如何
- 手机游戏|天龙八部手游:拥有全职业中最强的群伤,真的会沦为一个下水道职业
- 日式厨房装修如何设计
- 厨房装修时如何选择合适自己吊顶材料
- 地中海风格装修瓷砖如何搭配
- 梦见捡到一个弃婴女孩 梦见捡到一个弃婴男孩
- 精选20份简单又实用的德育手抄报模板 做一个有道德的人手抄报
- 懂行人:买二手房前,切记要将这几点了解清楚,以免日后产生纠纷
- 苦丁茶产地是哪里 如何选购苦丁茶
