5-6 可变参数

Posted hushaoyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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([email protected])  # (‘[email protected]‘,)
7 
8 # (‘[email protected]‘, ‘[email protected]‘, ‘[email protected]‘)
9 send_mail([email protected],[email protected],[email protected])

 

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

 

以上是关于5-6 可变参数的主要内容,如果未能解决你的问题,请参考以下文章

Python3----函数的参数是可变参数,将传进来的参数转成列表

2017寒假零基础学习Python系列之函数之 函数之定义可变参数

java可变参数实例

29.Python:可变长参数

JS支持可变参数(任意多个)

经典面试题-python函数之默认参数