python :函数的参数传递

函数的传参(把数据给函数)
函数的形参(接收函数调用传过来的数据)

python 函数的参数传递

传递方式:
	1. 位置传参
    	1.1 序列传参
	2. 关键字传参
    	2.1 字典关键字传参

**位置传参:**
	实际参数(实参) 的对应关系与形式参数(形参)的对应关系是
	按位置来依次对应的.


说明:
	实参和形参通过位置进行传递和匹配
	实参的个数必须与形参的个数相同

序列传参

	序列传参是指在函数调用过程中,用*(星号) 将序列拆解后
按位置进行传递的传参方式

说明:
	序列传参时,序列拆解的位置将与形参一一对应

关键字传参:

关键字传参是指传参时,按着形参名称给形参赋值
实参和形参按名称进行匹配

说明:
可以不按位置进行匹配

字典关键字传参:

是指实参为字典,将字典用** 拆解后进行关键字传参的传
递方式

说明:
	字典的键名和形参名必须一致
	字典的键名必须为符合标识符命名规则的字符串
	字典的键名要在形参中存在

函数的综合传参

1. 函数的传参方式在能确定形参能唯一匹配到相应实参的情
	 况下可以任意组合
2. 函数的位置传参要先于关键字传参
  示例:
    def myfun(a, b, c):
        pass
    myfun(100, *[200, 300])
    myfun(100, *"BC")
    myfun(*"AB", 300)
    myfun(*[100], 200, *[300])
    myfun(100, c=300,b=200)
    myfun(a=100, 200, c=300)  # 错误的

    myfun(100, **{'c':300, 'b':200})
    myfun(100, **{'c':300}, b=200)
    myfun(100, b=200, **{'c':300})

-------- 以下讲的内容是函数的形参-------

函数的缺省参数

语法:
	def 函数名(形参名1=默认实参1, 形参名2=默认实参2,
          	形参名3=默认实参3, .....)
作用:
	让函数的调用者少传递参数来调用函数

说明:
	1. 缺省参数必须自右至左依次存在,如果一个参数有缺省
		参数, 则其右侧的所有参数都必须有缺省参数
	2. 缺省参数可以有0个,1个或多个,甚至全部都有缺省参数
如:
    def fn(a, b=10, c): # 错误
        pass
    def fn(a=0, b=None, c=False):  # 是这对的
        pass
 **函数的可变实参和不可变实参的传递**
说明:
	当一个可变对象通过函数实参传入函数内时,在函数内
	可以通过局部变量来操作可变对象(列表,字典,集合...)

函数形参的定义方式

位置形参
星号元组形参
命名关键字形参
双星号字典形参

位置形参:
语法:
	def 函数名(形参变量1, 形参变量2, ....):
    	语句块

星号元组形参
语法:
	def 函数名( * 元组形参名):
    	语句块
作用:
	收集多余的位置传参
说明:
	元组形参名一般命名为'args'
	 * 元组形参一个函数只能有一个

命名关键字形参

语法
	def 函数名(*,命名关键字形参1, 命名关键字形参2,..):
    	语句块
	或
	def 函数名(*args,命名关键字形参1, 命名关键字形参2,..):
    	语句块

作用:
	强制所有的命名关键字形参都必须用关键字传参或字典关
	键字传参

双星号字典形参

语法:
	def 函数名(**字典形参名):
    	语句块
作用:
	收集多余的关键字传参
说明:
	字典形参名一般命名为'kwargs'
	一个函数内字典形参最多只有一个



函数的形参说明:
	位置形参,缺省参数,星号元组形参,双星号字典形参可以混
合使用

函数形参自左至右的定义顺序为:
位置形参
星号元组形参
命名关键字形参
双星号字典形参

函数的不定长参数:
有两种: 星号元组形参,双星号字典形参
用不定长参数可以接收任意的传参

  如:
    def fn(*args, **kwargs):
        print(args, kwargs)

全局变量和局部变量

**局部变量**
	1. 定义在函数内部的变量称为局部变量(函数的形参也是
   		局部变量)
	2. 局部变量只能在函数内部使用
	3. 局部变量在函数调用时才能创建,在函数调用之后会
   		自动销毁
**全局变量**
	1. 定义在函数外部,模块内部的变量称为全局变量
	2. 全局变量所有的函数都可以直接访问(但函数内部不能将
   		其直接赋值)
说明:
	函数内部赋值语句不会对全局变量造成影响
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值