day38 函数的参数(下)
学习日期:20241015
学习目标:函数﹣-51 函数的参数:当函数操作对象不固定时怎么处理?
学习笔记:
不定长参数
# 实现不定长参数
def address_book(name,*telephone,alias_name=None,**custom):print(f"name:{name},tel:{telephone},aname{alias_name},custom:{custom}")
# 只传一个参数
address_book("wilson") # name:wilson,tel:(),anameNone,custom:{}
# 传入位置参数
address_book("willson",123,4545) # name:willson,tel:(123, 4545),anameNone,custom:{}
# 传入关键参数
address_book('willson',123,456,home="guangzhou") # name:willson,tel:(123, 456),anameNone,custom:{'home': 'guangzhou'}
address_book('willson',123,455,alias_name='w',home="tiantian") # name:willson,tel:(123, 455),anamew,custom:{'home': 'tiantian'}
函数文档
函数内省
def foo():"""" 演示 """print('test')
# 调用函数,注释不会打印
foo() # test
# 打印注释
print(foo.__doc__) # " 演示print(dir(foo)) # 输出函数的属性 ['__annotations__', '__builtins__',.....
print(foo.__dir__) # <built-in method __dir__ of function object at 0x0000027ABFF1BBA0>
总结
- 函数可以使用不定长参数增加灵活性
- 可以增加文档,帮助使用函数的人了解你定义的复杂参数
- 文档是通过内省方式实现的,借用字符串的形式来进行编写