Python|函数和模块
![Python|函数和模块](https://static001.geekbang.org/infoq/39/393cbea2fb66ef08e63bf8f696524fc4.png)
Author:AXYZdong
自动化专业 工科男
有一点思考,有一点想法,有一点理性!
定个小小目标,努力成为习惯!在最美的年华遇见更好的自己!
更多精彩文章前往:👉 个人主页
定义函数:def
关键字。函数名后面的圆括号中可以放置传给函数的参数,函数执行完成后可以通过 return
关键字来返回一个值。
函数的参数
在 python 中,函数的参数<u>可以有默认值</u>,<u>也支持使用可变参数</u>,所以 python 中并不需要其他语言一样支持 <u>函数的重载</u>(因为定义一个函数的时候可以让它有多种不同的使用方式)。
在不确定参数个数时,可以使用可变参数
用模块管理函数
Python 中每个文件就代表了一个模块(module),在不同的模块中可以有同名的函数,在使用函数的时候我们通过 import
关键字导入指定的模块就可以区分到底要使用哪个模块的函数。
import 语句包含一下部分:
import
关键字模块的名称
可选的更多模块名称,之间用逗号隔开
说明:如果导入的模块除了定义函数之外还有可执行的代码,那么 python 解释器在导入这个模块时就会执行这些代码。
最好将这些执行代码放入如下所示的条件中,这样除非直接运行该模块,if 条件下的这些代码是不会执行的,因为只有直接执行的模块的名字才是 "__ main__"。
module.py
test.py
例:实现计算求最大公约数和最小公倍数的函数
None 值
None(首字母 N 必须大写)表示没有值,是 NoneType 数据类型的唯一值。
如果希望变量中存储的东西不会与一个真正的值混淆,这个没有的值就可能有用。
对于没有 return 语句的函数定义,Python 都会在末尾加上 return None 。 print() 的返回值就是 None 。
关键字参数和 print()
关键字参数是由函数调用时加在它们前面的关键字来识别的。关键字参数通常用于可选变元。
print() 函数有可选变元 end 和 sep ,分别指定在参数末尾打印什么,以及在参数之间打印什么来隔开它们。
print() 函数不加可选变元 end 就默认在字符串末尾添加换行符,但在设置 end 关键字参数后,就可以将它变成一个字符串。
print() 函数打印多个字符串值时,默认用空格隔开它们。但设置 sep 关键字参数,就可以替换掉默认的参数。
局部和全局作用域
在被调用和函数内部定义的变量,属于该函数的局部作用域。当一个函数被调用时,就创建了一个局部作用域,该函数返回时,这个局部作用域就会被销毁,它的所有变量都会丢失。
在所有函数之外定义的变量,属于全局作用域。只有一个全局作用域,它是在程序开始的时候创建的。如果程序终止,全局作用域就会被销毁,它的所有变量都会丢失。
一个变量只能是其中一种,不可能既是全局的又是局部的。在不同的作用域中可以用相同的名字命名不同的变量。
局部变量不能在全局作用域内使用
局部作用域不能使用其他局部作用域内的变量
全局变量可以在局部作用域中读取
Python 在查找一个变量时会按照“局部作用域”、“嵌套作用域”、“全局作用域”和”内置作用域“的顺序进行搜索。“内置作用域”就是 Python 内置的那些标识符,input
、print
、int
等都属于内置作用域。
名称相同的局部变量和全局变量
运行结果
global 语句
如果要在一个函数内修改全局变量,就要使用 global 语句。
如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量。
如果在一个函数中,有针对该变量的 global 语句,它就是全局变量。
否则,如果该变量用于函数中的赋值语句,它就是局部变量。
但是,如果该变量没有用在赋值语句中,它就是全局变量。
参考文献
[1]:https://github.com/jackfrued/Python-100-Days
[2]:Python 编程快速上手:让繁琐工作自动化/ (美)斯维加特(A1 Sweigart) 著;王海鹏译.北京:人民邮电出版社,2016.7
[3]:Python 中文指南;作者:王炳明,版本:v1.0
本次的分享就到这里
如果我的文章对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!
听说 👉 点赞 👈 的人运气不会太差,每一天都会元气满满呦!^ _ ^
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了👉 关注 👈我哦!
如果以上内容有任何错误或者不准确的地方,欢迎在下面👇留个言。或者你有更好的想法,欢迎一起交流学习~~~
版权声明: 本文为 InfoQ 作者【AXYZdong】的原创文章。
原文链接:【http://xie.infoq.cn/article/6f1884ad94d423fb045423e5e】。文章转载请联系作者。
评论