1.def test(x, y):
print(x, y)
test(y=1, x=2)
test(2 , y=1) #位置参数一定要在关键字参数的前面
def test(x, y, z):
print(x, y, z)
test(2, z=1, y=2)
2.默认参数
def test(x, y=2): #定义关键字参数时,位置参数要在关键字参数之前 不能写成 test(y=2, x)
print(x, y)
test(2)
test(2,2)
3.传递不固定的形参
def test(*args):
print(test)
test(1, 2, 3, 4, 5, 6)
test(*[1, 2, 3, 4, 5, 6]) #*args = *[1, 2, 3, 4, 5] #传入一个元组
test([1, 2, 3, 4, 5, 5]) #传入一个列表 为单独的一个变量
def test(x, *args):
print(x)
print(args)
4. 传递字典
def test3(name, **kwargs):
print(name)
print(kwargs)
test('alex', age=18, sex='m')
def test3(name, **kwargs):
print(name)
print(kwargs['age'])
print(kwargs['sex'])
test('alex', age=18, sex='m')
5.混合编程
def test4(name, *args, age = 18, **kwargs):
print(name)
print(age)
print(kwargs)
logger('Test4')
def logger(source):
print('from %s' %source)
test('alex', 18, age = 18, sex = 'm', hobby = 'tesla)