Python之函数-缺省值
形参缺省值
- 缺省值也称为默认值,可以在函数定义时,为形参增加一个缺省值。其作用:
- 参数的默认值可以在未传入足够的实参的时,对没有给定的参数赋值为默认值
- 参数非常多的时候,并不需要用户每次都输入所有的参数,简化函数调用
示例
def add(x=4, y=5): # 形参也是标识符,也是变量
print(x, y)
return x + y
# 定义一个add函数,形参是x和y,x的默认值是4,y的默认值是5
add(), add(10), add(7), add(y=8), add(4, 9), add(x=10), add(11, y=12), add(x=7, y=20), add(y=20, x=7)
# 返回结果:(9, 15, 12, 12, 13, 15, 23, 27, 27)
add(y=20, 8)
# 按位置传参时,复杂的放后面,简单的放前面
# 报错内容:SyntaxError: positional argument follows keyword argument
def login(host='local', port=3306, username='root', password='root'):
conn_str = "mysql://{2}:{3}@{0}:{1}/".format(host, port, username,password)
print(conn_str)
# 上面代码定义了一个数据库连接的函数,用于获取数据库ip、端口、用户名、密码,都有缺省值,但是一般都需要更换
login()
# 这个函数调用返回的结果,都是默认值
# 返回结果:mysql://root:root@local:3306/
login('192.168.1.1')
# 这个函数调用返回的结果,输入了一个IP地址,一般数据库的IP会分项目环境业务进去区分
# 返回结果:mysql://root:root@192.168.1.1:3306/
login('192.168.1.1', username='Runaway')
# 这个函数调用返回的结果,输入了一个IP地址是位置传参,Runaway是关键字传参,指定了username='Runaway'
# 返回结果:mysql://Runaway:root@192.168.1.1:3306/
login(username='Runaway', password='1234', host='192.168.1.11', port='3307')
# 这个函数调用4个形参都使用了关键字参数,没有使用默认的缺省值
# 返回结果:mysql://Runaway:1234@192.168.1.11:3307/