所谓缺省参数,在定义函数时,可以给某个参数指定一个默认值,具有默认值的参数就叫做缺省参数。调用函数时,如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值。
创新互联是一家集网站建设,卫东企业网站建设,卫东品牌网站建设,网站定制,卫东网站建设报价,网络营销,网络优化,卫东网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
缺省参数的作用:
函数的缺省参数,将常见的值设置为参数的缺省值,从而简化函数的调用。
例如:对列表排序的方法
执行结果:
在参数后使用赋值语句,可以指定参数的缺省值。
不设置缺省参数:
执行结果:张三 是 男生
# 假设班上的男生比女生多,我们不传递True这个参数,让性别默认是男生
设置缺省参数:
执行结果:
提示:
1. 缺省参数,需要使用最常见的值作为默认值。
2. 如果一个参数的值不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递。
一句话讲在定义函数时怎样指定函数的缺省参数的默认值,在形参后面跟上一个等号,等号后面跟上参数的默认值就可以了。可以看以上案例。
必须保证带有默认值的缺省参数在参数列表末尾。
所以,以下定义是错的:
PyCharm在错误的参数下面会有一个波浪线提示,告诉你要么给它挪到缺省参数前面,要么它也变成带有默认值的缺省参数。
在调用函数时,如果有多个缺省参数,需要指定参数名,这样解释器才能能够知道参数的对应关系。
执行结果:
这个不是不传,是re模块自己传的match对象。
这个函数也只能是一个参数,这是re模块自己的机制
parameter 是函数定义的参数形式
argument 是函数调用时传入的参数实体。
对于函数调用的传参模式,一般有两种:
此外,
也是关键字传参
python的函数参数定义一般来说有五种: 位置和关键字参数混合 , 仅位置参数 , 仅关键字参数 , 可变位置参数 , 可变关键字参数 。其中仅位置参数的方式仅仅是一个概念,python语法中暂时没有这样的设计。
通常我们见到的函数是位置和关键字混合的方式。
既可以用关键字又可以用位置调用
或
这种方式的定义只能使用关键字传参的模式
f(*some_list) 与 f(arg1, arg2, ...) (其中some_list = [arg1, arg2, ...])是等价的
网络模块request的request方法的设计
多数的可选参数被设计成可变关键字参数
有多种方法能够为函数定义输出:
非常晦涩
如果使用可变对象作为函数的默认参数,会导致默认参数在所有的函数调用中被共享。
例子1:
addItem方法的data设计了一个默认参数,使用不当会造成默认参数被共享。
python里面,函数的默认参数被存在__default__属性中,这是一个元组类型
例子2:
在例子1中,默认参数是一个列表,它是mutable的数据类型,当它写进 __defauts__属性中时,函数addItem的操作并不会改变它的id,相当于 __defauts__只是保存了data的引用,对于它的内存数据并不关心,每次调用addItem,都可以修改 addItem.__defauts__中的数据,它是一个共享数据。
如果默认参数是一个imutable类型,情况将会不一样,你无法改变默认参数第一次存入的值。
例子1中,连续调用addItem('world') 的结果会是
而不是期望的
在 Python 中,“return”函数的用法如下:
1、return 语句用于退出函数,终止函数并将 return 值传回。实例:
def a(x,y):
if x==y:
return x,y
2、用于同一循环语句下,遇到第一个 return 后即返回。实例:
```python
def fun(a,b):
print (a)
return a
print (b)
return b
resunlt = fun(2,6)
2
```
3、用于 return 在不带参数的情况下(或者没有写 return 语句),默认返回 None。实例:
def recurve(a,b):
if a%b==0:
return b
else:
gcd(b,a%b)
以上内容参考:百度百科-Python
print函数介绍:print函数被用来进行数据的输出,也就是将数据显示在你所能看到的界面上,比如我们print("Hello World"),运行它,就会在浏览器上显示Hello World。
return函数介绍:可以选择性地向调用方返回一个表达式,可带参数也可不带,不带参数的return函数会返回None。return单独运行时,需要print函数才能显示出来,但在交互模式下,return的结果会自动显示出来。
需要注意的一点是,return是返回值,它后面的代码块是不执行的,因此需要执行的代码不能放在return语句后,会失效。
看了上面的介绍,小伙伴大概清楚了一点,那究竟区别在哪呢?
return只能运用在函数中,有时候函数运行完会得出一个结果值,我们可以拿这个得出的值去进行另外的运算,所以我们需要用return将结果给返回出来;
如果我们用print的话,仅仅是将结果显示在我们能看到的界面上而已,而并没有办法得到这个值,更无法进行后续的操作了。
另外,在循环语句中使用,return可以跳出循环,而print则会一直循环,除非使用函数进行终止。
这种函数是便于在别人调用的时候,如果没有传入参数的时候,采用的默认值
现在你有add(a=1,b=2)的函数
我直接print add()
就可以直接输出3了