栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python函数参数简单上手,初学必看

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python函数参数简单上手,初学必看

第一步:分清楚形参和实参

形参的英文名:arguments,简写args

实参的英文名:parameters,简写para

函数定义时,写在函数名后面括号里的就是变量名就是形参;

函数调用时,写在函数名后面括号里的要传给形参的值(value)就是实参。

def add(a, b): # 这里的a,b就是形参。形式参数
    return a + b

re = add(1, 2) # 这里的1,2就是实参,实际参数
print(re) # 显示3

第二步:分清楚形参一共有四种形式,分别有

①a,b,c这类位置参数;# 单纯的变量形式存在就叫他位置参数

②a=1,b=2,c=3这类默认参数;# 给变量赋值了就叫他默认参数

③*args可变收集参数;# *woCao666,*mmd这种命名形式的就叫他可变收集参数,变量类型是元组,*是解包符号

④**kwargs关键字可变参数。

在函数定义时,第四种**kwargs必须写在最后面!前面三种类型的形式参数位置可以任意组合:

像下面这样,a是位置参数,c是默认参数,*args是可变参数,**kwargs是关键字可变参数。前三种形式参数的位置可以任意组合,关键字可变参数必须放在最后面,别问为什么,记住就行。

def test(a,c=10,*args,**kwargs):
    print(a,c,*args,**kwargs)

def test(a,*args,c=10,**kwargs):
    print(a,c,*args,**kwargs)

def test(c=10,a,*args,**kwargs):
    print(a,c,*args,**kwargs)

def test(c=10,*args,a,**kwargs):
    print(a,c,*args,**kwargs)

def test(*args,a,c=10,**kwargs):
    print(a,c,*args,**kwargs)

def test(*args,c=10,a,**kwargs):
    print(a,c,*args,**kwargs)

第三步:学会调用函数。

首先,默认参数可以不给他传递实参。

def add(a=10,b):
    return a+b

re = add(1)
print(re) # 打印11,这里把1传给b

另外,形参*args会吃掉他之后所有的位置参数:在下面的代码中,*args会吃掉实参1,2,3,4,b和a没有被赋值。

def test(*args, b, a, c=10, **kwargs):
    print(a, b, args, kwargs, c)


test(1, 2, 3, 4, key1=5, key2=6)
 # TypeError: test() missing 2 required keyword-only arguments: 'b' and 'a'

正确代码如下,在*args后面的位置参数都需要使用关键字参数来赋值。关键字参数就是在调用函数时使用键值对形式赋值,比如add(var1= xxx,var2=xxxx)。

def test(*args, b, a, c=10, **kwargs):
    print(a, b, args, kwargs, c)


test(1, 2, b=3, a=4, key1=5, key2=6)  # 4 3 (1, 2) {'key1': 5, 'key2': 6} 10

在上图中,没有给c传值,但是打印出c等于10。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号