5-6 可变参数
1、定义的变量名全部使用大写字母表示它是一个常量
1 PORT = 3306 # 定义的变量名全部使用大写字母表示它是一个常量 不变
2、位置传参
1 def mysql(host,user,password,port,charset,sql,db): # 定义一个连接mysql的函数 2 print('连接mysql') # 输出连接mysql 3 4 # 1、必填参数,位置参数 调用函数的时候,必须一一对应传参 5 mysql('ip','user','sdfsdf',3306,'sdfsdf','select','db')
3、关键字传参
1 def mysql(host,user,password,port,charset,sql,db): # 定义一个连接mysql的函数 2 print('连接mysql') # 输出连接mysql 3 4 # 2、关键字传参,需要指定传入的参数的参数名,没有位置限制 5 mysql(user='root',password='123456',host='192.168.1.3', 6 port=3306,sql='sdfsdf',db='sdfsdf',charset='sdfsdf')
4、位置传参和关键字传参使用注意事项
1 def mysql(host,user,password,port,charset,sql,db): # 定义一个连接mysql的函数 2 print('连接mysql') # 输出连接mysql 3 4 # 3、可以位置传数和关键字传参同时使用,注意,前面的需要位置对应,后面全部使用关键字传参 5 mysql('192.168.1.1','root',port=3306,password='sdfsdf',sql='sdfsdf',db='sdfsdf',charset='sdfsdf') 6 7 # 4、不能前面使用关键字传参,后面又用位置传参 8 # mysql(password='123456','root',) 不对
5、*args 可变参数 非必填且个数不限
1 def mysql2(ip,*info): # 定义一个函数 参数ip为必填 参数info为非必填且个数不限 2 print(ip,info) 3 4 # *args 将参数放到一个元组中 非必传,参数个数不定 5 # mysql2() # 报错,ip为必填参数 6 mysql2('host',1) # host (1,) 7 mysql2('host',1,2) # host (1, 2) 8 9 # host ('user', 13345435, 0, 'sefsd', 'sdfds') 10 mysql2('host','user',13345435,00000,'sefsd','sdfds')
6、定义一个发送人不定的发送邮件的函数
1 def send_mail(*args): # 定义一个发邮件的函数,*args 2 print(args) 3 4 # *args 非必填,个数不限制 5 send_mail() # () 6 send_mail('qqq@qq.com') # ('qqq@qq.com',) 7 8 # ('qqq@qq.com', 'asaaa@163.com', 'ddd@sina.com') 9 send_mail('qqq@qq.com','asaaa@163.com','ddd@sina.com')
7、从列表中取值传入参数
1 def calc(a,b,c): # 定义一个函数,传入a,b,c三个参数 2 print(a+b) # 打印 a+b 3 return a+b # 返回 a+b 的值给函数 4 5 l = [1,2,3] # 定义一个列表 6 calc(*l) # 从列表中取值传入calc函数中 3