首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中的函数参数

# 必需参数

# 默认参数

# 关键字参数

# 不定长参数

# 必需参数:必需参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样。

def must(m):

# 调用时必须传入一个参数

print("必须传入参数",m)

return

# 调用函数,不传入参数会报错

print(must())

# 默认参数:调用时不传入参数就使用默认值代替

def tac(t ="默认值" ):

# 调用时不传入参数,使用默认值

print("使用默认值", t)

return

# 调用函数,不传入参数会使用默认值

print(tac())

# 关键字参数 :函数名(key=value)

# 关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

# 使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

def print_falst(num,who):

print("第%s个函数的创建,你是%s" %(num,who))

print_falst(1,"Tom")

print_falst(who = "Tony",num = 2)

# 直接使用关键字参数,如不传递,关键字参数将使用默认值,传入的参数顺序可变

def print_second(who="name",num=None):

print("第%s个函数的创建,你是%s" %(num,who))

print_second(who = "Linda")

# 不定长参数:可随意传入参数,不限位数

# 一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数

# 加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

def rand( msg, *vartuple ):

"打印任何传入的参数"

print ("输出: ",msg)

# 剩余所有参数

print (vartuple)

# 调用rand 函数

rand( 1, 2, 3, 4, 5, 6, 7 )

# 如果在函数调用时没有指定参数,它就是一个空元组

# 不向函数传递未命名的变量

def rand1(msg1, *vartuple):

"打印任何传入的参数"

print("输出: ", msg1)

for msg2 in vartuple:

print(msg2)

return

# 调用rand1 函数

rand1(5)

rand1(1, 2, 3, 4, 5)

# 还有一种就是参数带两个星号 **,加了两个星号 ** 的参数会以字典的形式导入。

def rand2(msg3, **vardict):

"打印任何传入的参数"

print("输出: ", msg3)

print(vardict)

# 调用rand2 函数

rand2(1, a=2, b=3)

# 声明函数时,参数中星号 * 可以单独出现,如果单独出现星号 * 后的参数必须用关键字传入

def rand3(a,b,*,c):

return a+b+c

m = rand3(1,2,c=3)

print(m)

# 不定长参数可以接收 位置参数,关键字参数

# 不定长参数接收位置参数 *args

# 不定长参数接收关键字参数 **kwargs

# 不定长接收位置参数

def print_third(*args):

print(*args)

# 输出args输入的值

print(args)

print_third('3','min','av')

# 不定长接收关键字参数,会自动将参数转换为字典

def print_fourth(**kwargs):

print(kwargs)

# 输出who关键字对应的值

print(kwargs['who'])

print_fourth(num=1,who="Tony")

# 匿名函数

# python 使用 lambda 来创建匿名函数。

# 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

# 语法

# lambda 参数:返回值

# 使用场景:通常用在只使用一次的场景下,且处理操作简单

# 定义函数

def print_fifth(a,b):

return a + b

print(print_fifth(1,2))

# lambda函数写法,切记使用简单,最好只使用一次

lam = lambda a,b : a + b

print(lam(1,2))

# 强制位置参数

# Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。

# 在下方的例子中,形参 a 和 b 必须使用指定位置参数,c 或 d 可以是位置形参或关键字形参,而 e 或 f 要求为关键字形参:

def force(a, b, /, c, d, *, e, f):

print(a, b, c, d, e, f)

# 正确写法

force(1, 2, 3, d=4, e=5, f=6)

# 错误写法

# force(1, b=2, c=3, d=4, e=5, f=6) # b 不能使用关键字参数的形式

# force(1, 2, 3, 4, 5, f=6) # e 必须使用关键字参数的形式

# 函数说明文档

# 通过调用 Python 的 help() 内置函数或者 __doc__ 属性,我们可以查看某个函数的使用说明文档。事实上,无论是 Python 提供给我们的函数,还是自定义的函数,其说明文档都需要设计该函数的程序员自己编写。

# 函数的说明文档通常位于函数内部、所有代码的最前面。

# 设置说明文档

# 定义一个比较数字大小的函数

def num_max(num1,num2):

'''

比较 2 个数字的大小

'''

num = num1 if num1 > num2 else num2

return num

help(num_max)

# print(num_max.__doc__)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201130A0HD4A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券