函数

定义函数

python 中定义一个函数需要以 def 开头

def functions_name():  #定义一个函数
    pass  #占位符,为了防止定义空函数时 python 报错

def:def 作为定义函数的关键词

functions_name:这是函数名,需谨记的是,此函数名是可以赋值给变量的,某种意义上来说,函数名能够任意更改,但真正调用函数时需要在函数名后面加上 "()"

value = functions_name  #将函数名赋值给变量 value
value()  #调用函数

模块和包

模块:任意以 .py 结尾的文件都能够作为模块导入另外的 python 程序

包:简单来说,包就是一个普通的目录下面存放了一个名为 __init__.py 的文件,此文件内容可以为空,但文件必须存在

  注:自建包或自建模块都必须存放在 python 安装主目录下的 ./Lib/ 目录或者 ./Lib/site-packages/ 目录下,使用 vscode 时会对此有严格要求,pycharm 则没有

  注:函数,模块,包,都是为了简化程序而存在的,一个程序会因为代码过多而导致难以阅读,函数能够将代码分块便于理解,但中型甚至大型项目则必须要用到模块和包将函数也进行分块,此三者的关系为多个函数包含在一个模块中,多个模块包含在一个包里

函数的参数

形参和实参:形参大多在定义函数时使用,无实际意义,实参多在调用函数时使用,向函数中传递参数

函数的参数大致分为五种:位置参数,默认参数,可变参数,关键字参数,命名关键字参数

位置参数:

def functions_name(x,y):
    pass


functions_name(1,2)  #向此函数传入两个参数,位置分别对应 x=1,y=2

  注:def 定义函数后需空两行,此为代码编写规范(也可不按规范,不影响)

默认参数:

def functions_name(x,y=2):
    pass


functions_name(1)  #参数 y 默认设置为 2,所以可以仅传入一个参数 x 的值
functions_name(1,3)  #若传入两个值,则覆盖默认值,y=3

可变参数:

def functions_name(*value):  #*value 表示可变参数
    pass


a_list = [1,3,5,7,9]
functions_name(*a_list)  #已有列表的情况下需要在列表名前也加上 "*",表示将列表中的元素作为可变参数传递
functions_name(1,3,5,7,9) #向函数传参

关键字参数:

def functions_name(name,age,**parameter):  #**parameter 表示定义关键字参数
    pass


functions_name("name","age")  #关键字参数可为 0
functions_name("name","age","city","country")  #可传入任意数量的关键字参数

命名关键字参数:

def functions_name(name,age,*,city,country):  #"*" 表示分隔符
    pass


functions_name("name","age",city="changsha",country="China")
    #与位置参数不同的是命名关键字参数传参必须传入参数名,如 city="changsha",否则会报错,也可使用默认参数
原文地址:https://www.cnblogs.com/holinux/p/12783782.html