Python学习笔记--8.7 函数--可变参数、关键字参数

#可变参数,关键字参数
'''
def my(name,sex='女')#name 是位置参数,是必填的。sex='女'是默认值参数,不是必填的。
pass

def send_sms(phone_num):#发短信,需要知道手机号.这是给1个人发
pass
print('给%s发报警短信'%phone_num)


def send_sms(*phone_num):#给多人发信息

for p in phone_num:
print(p)
print('发报警短信'phone_num)
#不传参数
#传1个
#传N个
send_sms()
send_sms(18643235)
send_sms(1354354352,13334233)

# 可变参数,参数组
# 1不是必传的
# 2它把传入的元素全部都放到了一个元组里
# 3不限制参数个数
# 4它用在参数比较多的情况下
# def send_sms(*args):
# for p in args:
# print(p)

#关键字参数
def send_sms2(**phone_num):
#1不是必传的
#2不限制参数个数
print(phone_num)

send_sms2()
send_sms2('sdfagewa')
send_sms2(name='xiaohei',sex='nan')
send_sms2(addr='北京',country='中国',c='abc',f='kkk')

def send_sms2(**kwargs):#kw是key word的意思。

#一个星号传到是元组,两个星号传的是字典


def my(name,country='china',*args,**kwargs):
#第一位置必须是位置参数,第二位是默认参数,第三是可变参数,第四位是关键字。必须是这个顺序。
print(name)
print(country)
print(args)
print(kwargs)
my('aaa')
#运行结果
# aaa
# china #这项有默认值
# () #后边两个没有传,所以都是空的
# {}

my('xiaojun','japan','beijing','天通苑',color='红色',age=32)
#运行结果
# xiaojun
# japan
# ('beijing', '天通苑')
# {'color': '红色', 'age': 32}

my('xiaojun','beijing','天通苑',color='红色',age=32)
#运行结果
# xiaojun
# beijing
# ('天通苑',)
# {'color': '红色', 'age': 32}

'''
my('xiaojun','beijing','天通苑',color='红色',age=32,country='shanghai')
#运行结果,报错。country=''的位置不对。

猜你喜欢

转载自www.cnblogs.com/youyou-luming/p/9649543.html