python-基础-参数传递的多种方式
参数传入
可变参数
可变参数可以传入0个或者任意个参数
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
#调用的时候可以使用任意长度
calc(1, 2)
#list或者tuple需要在前面加*
nums = [1, 2, 3]
calc(*nums)
关键字参数
关键字参数可以自动组装成一个字典
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
#可以只传入必选参数
person('Michael', 30)
#也可以传入任意个数的关键字参数
person('Adam', 45, gender='M', job='Engineer')
#输出name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
# 如果组装成字典,也能传入
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)
#输出 name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
命名关键字参数
比如person函数,如果直接定义关键字参数,传入的内容是任意的
def person(name, age, **kw):
    if 'city' in kw:
        # 有city参数
        pass
    if 'job' in kw:
        # 有job参数
        pass
    print('name:', name, 'age:', age, 'other:', kw)
person('Jack', 24, city='Beijing', addr='Chaoyang', zipcode=123456)
命名关键字参数可以限制输入的参数,比如只接受city和job
def person(name, age, *, city, job):
    print(name, age, city, job)
#调用方式
person('Jack', 24, city='Beijing', job='Engineer')
定义的时候可以有缺省值
def person(name, age, *, city='Beijing', job):
	print(name, age, city, job)
#调用时可不传入city参数
person('Jack', 24, job='Engineer')
参数组合
- 必选参数
- 默认参数
- 可变参数
- 关键字参数
- 命名关键字参数
对于任意函数都可以通过func(*args, **kw)的形式调用,无论参数如何定义
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号