一、实参传参
Python中它的函数参数类型是,非常灵活的,但是它灵活不代表你可以这样使用,反而应该有敬畏之心,应该去限制它的类型。往往出问题都是从类型开始的。Python在以后更新的版本中,逐步加入了对类型的限制,就是为了解决在工程化编程的时候要面临的这些问题。
python的参数类型,与其他语言不一样,导致传参类型也不一样。参数分为两种一种是定义式的形式参数,另一种是调入的实实在在的参数。我们先介绍实参。
调用时,传参,传入实参的简称
def add(x,y):
print(x,y)
return x+y
add(4,5) 按照位置传参数
add(x=4,y=5) 关键字传参数
关键字传承,按照参数名称对应与顺序无关
add(x=8,5)这样写是不允许的,会出现语法错误
位置传参,不能跟在关键字传参之后
想混合使用,关键字传参和位置传参,位置传参要在前,关键字传参要在后面
add(4,x=5)
调用的时候才有传参的说法,定义的时候是形参。
传参数方式就两种:
1.位置传参
2.关键字传参数,按照参数名称对应与顺序无关
二、形参定义
python中的形参定义非常复杂,比较看水平。
1.形参缺省值问题:
缺省值也称为默认值,可以在函数定义时,为形参增加一个缺省值。其作用有,当你参数给的不全的时候,缺省值来补充。还要就是参数非常多的时候,我们缺省值可以简化调用。
def add(x=4,y=5):
print(x,y)
return x+y
print(add())
定义时,为形参安排一个缺省值
调用的时候如果不给参数,就直接用默认的
这样一来add()函数调用后,直接就是4和5相加就是9。
调用的时候如果提供了参数,就使用,没提供参数就使用默认的缺省值
add(4,5,x=10) 这样调用可以吗?
不可以的,会报错的,出现类型错误。参数X在传参的时候被多次赋值
x赋值给4之后,在x=10,是不允许的,这样的传参方式一般都是错误的
add(4,5,6) 这样调用也会报错,函数需要两个参数,给三个参数一定不对
我们给参数要求一定要和形参匹配
2.一般或普通参数
就是能接受两种传参方式的参数,位置传参和关键字传参。
普通参数可以有缺省值,但是缺省值参数应该在普通参数列表的最后。
函数参数中要有缺省值的参数,必须放后面
def add(x,y=10):
print(x, y)
return x + y
add 是变量,add指向这种新函数对象
x,y都可以接收这两种传参方式,称为即可以接受位置,同时也可以接受关键字的参数
普通参数可以有缺省值
add(4)
add(x=5) 这样调用可以
3.形参缺省值
函数形参带缺省值到底有什么用呢?
比如说登录函数,登录需要用户名、密码、IP、端口,这4个参数该怎么定义呢?
def login(host='localhost',port=3306,usename='root'
,password='root'):
print('mysql: //{2}:{3}@{0}:{1}/test'.format(
host,port,usename,password ))
#如果port不写缺省值就需要往前放
测试时
直接用 login() 可以直接连接本地
输出 mysql: //root:root@localhost:3306/test
根据上面代码能推出缺省值能后简化函数调用操作。
这种写法适合在企业中开发使用,我们都会给缺省值,让对方在使用的时候,能够尽量的少去填充值。企业开发尽量使用缺省值,多人协作开发必须有规范和限制。