python中函数的参数类型
参数类型:
1、必填参数,位置参数
# 可以按照位置传参;调用函数时,参数位置必须与函数内一致
# def mysql(host,user,password,port,db):
# print('连接mysql')
# mysql('118.24.3.40','jxz','123456',3306,'jxz')
# 1.如果不能记住位置参数的顺序,可以按照关键字传参;调用时加上关键字,就可以不按照函数位置传参
# def mysql(host,user,password,port,db):
# print('连接mysql')
# mysql(host='118.24.3.40',user='jxz',password='123456',port=3306,db='jxz')
2、默认值参数,非必传
#默认值参数,不是必填的;调用函数的时候没有传参则打印hahahha,如果传了,则打印传的参数
# def say(word='hahah'):
# print(word)
3、可变参数,非必传,不限制参数个数,
比如说给多个人发邮件,发邮件的人数不确定
# def mysql2(ip,*info): #*info这种传参方式参数不必填,且不限制参数个数,即可变参数
# #ip如果有必填参数,需要在可变参数前把必填参数写上
# print(info)
#参数组,*后为list或者元组时,可以将其拆开,分别传到函数内
# def calc(a,b,c):
# print(a+b)
#
# l = [1,2,3]
# calc(*l) #将list内的元素分开传给函数
4、关键字参数,非必传,不限制参数个数
会把传过来的关键字参数,放到一个字典里面
传参的时候必须得用k=v这样子来传
# def mysql(**mysql_info): #两个*号为非必填参数,但是传参一定要有关键字;其实就是将传的参数以字典的方式传输
# print(mysql_info)
# mysql()
# #mysql('ip','user') #这种方式错误,会报错
# mysql(ip='192.168.11',port=3306)
#实际应用,接口测试时通过接收不同的参数,判断要执行哪些操作
def request(url,method,**info):
print(url)
print(method)
if info.get('data'):
data = info.get('data')
elif info.get('file'):
file = info.get('file')
request('api.nnzhp.cn','get',data='name=aa&age=18',header='uuhyhh',file='/xxx/a.txt')
#在函数外定义字典
def mysql(host, user, password, port, charset, sql, db):
print(host)
print(user)
print(port)
print(charset)
print(sql)
dict={
't':{
'host': '192.168.1.1',
'user': 'root',
'password': 123456,
'port': 3306,
'charset': 'utf-8',
'sql': 'sql',
'db': 'db'},
'l':{
'host': '192.168.1.12',
'user': 'root',
'password': 123456,
'port': 3306,
'charset': 'utf-8',
'sql': 'sql',
'db': 'db'}
}
mysql(**dict.get('l')) #会将字典内的元素拆开成一个个的变量传到函数中host=192.168.1.1

浙公网安备 33010602011771号