Loading... ## 可接受任意数量参数的函数 `*` 接受任意个数的「位置参数」,在函数内表现为一个元组 `**` 接受任意个数的「关键字参数」,在函数内表现为一个字典 只接受关键字参数的函数 ```python def main(*args, **kwargs): print(args, type(args)) print(kwargs, type(kwargs)) if __name__ == '__main__': main(1, 2, 3, 4, 5, 6, key1 = 123, key2 = 456) """ (1, 2, 3, 4, 5, 6) <class 'tuple'> {'key1': 123, 'key2': 456} <class 'dict'> """ ``` ## 只接受关键字参数的函数 > 将强制关键字参数放到某个 `*`参数或者单个 `*`后面就能达到这种效果。比如: ``` def main(num, *, block: bool): pass if __name__ == '__main__': # main(1, True) # TypeError: main() takes 1 positional argument but 2 were given main(1, block=True) # True """ 此时在调用时,必须填写block有利于后期维护 """ print(help(main)) """ Help on function main in module __main__: main(num, *, block: bool) None """ ``` Last modification:August 9th, 2020 at 08:56 am © 允许规范转载