python函数支持哪些参数类型,python参数是函数
本文主要介绍Python中函数的参数类型的详细说明。文章围绕主题,有一定的参考价值,有需要的朋友可以参考一下。
目录
1、Python的函数参数类型2、Python的必选参数3、关键字参数4、默认参数5、变长参数
1、Python的函数参数的类型
必传参数:调用函数时必须传入的参数。定义函数时,只定义参数名。当关键字参数:被传入时,它作为函数的参数名-值对被传入默认参数:。定义函数时,默认情况下会为参数设置一个值。当参数被调用时,被不定长参数:*或* *修改的参数被视为默认值。*修改的参数是元组),** *修改的参数必须是字典,一般写成*args或**args。
2、Python的必传参数
传入的参数数量必须与形参数量一致# coding:utf-8
# author :杨小鹏
def demo01(a,b):
打印(a,类型(a))
打印(b,类型(b))
# demo01 (1) # typeerrormissing1必需的位置参数3360“b”缺少未知参数,demo01必须传递两个参数。
# demo01 (1,2,3) # typeerrordemo01()采用了2个位置参数,但给出了3个,demo01函数有两个位置参数,但收到了3个。
#必选参数3360调用函数时必须传入的参数。定义函数时,只定义参数名。
#传入的参数数量必须与参数数量相同。
demo01(1,2) #是
demo01(1,[1,2]) #是
demo01([2,3],(1,2)) #是
demo01(1,{2,3,4}) #是
demo01(2,{code:1001 , name: 张, age:18}) #是
3、关键字参数
通过将参数名与参数值相关联来传递参数。键值对的模式是参数名为key。#编码:utf-8
# author :杨小鹏
def demo01(a,b):
print(a,type(a),end=__ )
打印(b,类型(b))
#第一个关键字进出的参数位置之前的参数比所选关键字的差。如下例所示,第一个关键字传递的变量是A,A在函数定义的第二个位置,那么第二个位置之前的所有参数都必须通过关键字传递。
# demo01(1,a=2) # demo01()获得了参数“a”的多个值
demo01(a=1,b=2) #是
demo01(1,b=2) #是
demo01(b=1,a=2) #是
demo01(b=1,a=[1,2]) #是
demo01(b=[2,3],a=(1,2)) #是
demo01(b=1,a={2,3,4}) #是
demo01(b=2,a={code:1001 , name: 张, age:18}) #是
4、默认参数
调用函数时不传入参数an的默认值,传入时根据传入的参数值处理# coding:utf-8。
# author :杨小鹏
# #默认参数
def demo02(City=陇南):
Print(City为默认参数,默认值为:中国,当前值为:,City)
#没有传入任何参数
演示02()
#传入参数
demo02(《北京》)
5、不定长参数
- 传入的参数会生成一个元组类型的变量供函数内部使用
# coding:utf-8# Author:YangXiaoPeng
## 不定长参数
def demo03(*args):
print(args,type(args))
# 传入的参数会生成一个元组类型的变量供函数内部使用
demo03(1)
demo03("code")
demo03(1,"code")
- 传入的参数不能少于必传参数的个数
- *args 后面的形参,必须以关键字参数进行传参
# coding:utf-8# Author:YangXiaoPeng
# *args 后面的形参,必须以关键字参数进行传参,
def demo04(a, b, *args,c):
print("a传入的参数值是:{},b传入的参数值是:{}, args传入的参数是:{}, c出入的参数是:{}".format(a, b, args,c))
# 传入的参数不能少于必传参数的个数,a,b,c三个为必传参数
# demo04(1, 2) # TypeError
# demo04(1, 2, 3) # TypeError
demo04(1, 2, c=3)
- *args 之前的参数只能按位置传参,不可以关键字传参
- 传入的参数个数比必传参数多时,首先给必传参数按位置赋值,然后将剩余的参数生成一个元组传递给args
- **修饰的参数必须以关键字的参数方式传参,Python解释器会将传入的关键字和关键字的值生成一个字典供函数内部使用
# coding:utf-8# Author:YangXiaoPeng
def demo05(**kwargs):
print("kwargs传入的参数是:{}".format(kwargs),type(kwargs))
kwargs = {"code":1002, "name":"zhang"}
# demo05(kwargs) # TypeError
# **修饰的参数必须以关键字的参数方式传参,Python解释器会将传入的关键字和关键字的值生成一个字典供函数内部使用
demo05(**kwargs) # kwargs传入的参数是:{code: 1002, name: zhang} <class dict>
demo05(code=1002,name="zhang") # kwargs传入的参数是:{code: 1002, name: zhang} <class dict>
- **修饰的参数必须是最后一个
# coding:utf-8# Author:YangXiaoPeng
# **修饰的参数必须是最后一个
"""
# SyntaxError: invalid syntax
def demo06(a, b, *args, c, **kwargs, d):
pass
"""
def demo06(a, b, *args, c, **kwargs):
print("a传入的参数值是:{},b传入的参数值是:{}, args传入的参数是:{}".format(a, b, args),end=)
print(",c传入的参数是:{},kwargs传入的参数是:{}".format(c,kwargs))
demo06(1, 2, 3, 4, 5, c=3, code=1002, name="zhang", d=3)
到此这篇关于Python中函数的参数类型详解的文章就介绍到这了,更多相关Python函数参数内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。