小白学Python---面向对象02
16lz
2021-01-22
参数—可变参数—关键字参数—命名关键字参数
以下三个函数,分别设置函数的参数为*args可变参数,**关键字参数,命名关键字参数
def my_sum(*args):
total = 0
for i in args:
total += i
return total
def say_hello(**kwargs):
print(kwargs)
if 'name' in kwargs:
print('你好%s' % kwargs['name'])
elif 'age' in kwargs:
if kwargs['age'] > 18:
print('你是成年人')
else:
print('未成年')
else:
print('无信息')
#*写在中间(命名关键字参数),前面的可以不用加关键字但后面的要加
def foo(a, b, c, *, name, age):
print(a + b + c)
print(name, ':', age)
def main():
say_hello(name='王大锤', age=18)
parm = {'name':'王大锤', 'age':16}
#这里要加**否则出错
#不加*,显示TypeError: say_hello() takes 0 positional arguments but 1 was given
#加*,显示TypeError: say_hello() takes 0 positional arguments but 2 were given
say_hello(**parm)
mylist = [1, 2, 3, 4]
print(my_sum(*mylist))
#命名关键字参数,*在name之前,因此name开始要给关键字参数
foo(1, 2, c=3, name='王大锤', age='56')
if __name__ == '__main__':
main()
更多相关文章
- FieldErro:无法将关键字'date_added'解析为字段。选项包括:data_ad
- Python3语法——Python3函数参数的各种形式
- python 函数、参数及参数解构
- 从bash脚本传递参数到python解释器
- 是否可以使用argparse来捕获任意一组可选参数?
- Python定义函数时,不同参数类型的传递
- Python语言特性之1:函数参数传递
- jira python oauth:如何获取身份验证的参数?
- Python——函数 8、可变长参数