欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python学习日记--函数

程序员文章站 2022-03-20 18:29:08
...

函数

命名方式:
def

一、参数类型与使用:

1.位置参数

def function(a,b,c) : //命名方式,其中a、b、c为位置参数
       return 
function(1,2,3)  //使用

2.默认值参数(默认值参数许位于位置参数后面)

def function(a,b,c=10,d=5) : //命名方式,其中a、b为位置参数,c、d为默认值参数
      return 
function(1,2,3,4)       //使用1
function(1,2,3)         //使用2,此时c的值为3,d的值为默认值5

3.命名参数(按照形参的名称传递参数)
def function(a,b,c) : //命名
return
function(b=1,a=2,c=3) //可以不按照命名时候的形参顺序使用
4.可变参数(指的是“可变数量的参数”)存在两种情况:
…1)*param(一个星号),将多个参数收集到“元组”对象传入函数

def function(a,b,*c):
         return
function (1,2,3,4)` //此时的c=(3,4)

…2)**param(两个星号),将多个参数收集到“字典”对象传入函数

def function(a,b,**c):
         return
function (1,2,'name'=3,'age'=4)` //此时的c={'name':3,'age'=4}

5.强制命名参数(在“可变参数”后面增加的参数,必须强制使用“命名参数”,避免该部分参数被纳入“可变参数”的值)

二、参数传递都是“引用传递”,不是值传递:
1.对“可变对象”进行“写操作”,直接作用于原对象本身;
2.对“不可变对象”进行“写操作”,会产生一个新的“对象控件”,并用新的值填充该空间。效果与其他语言的“值传递”一致,但是不是“值传递”

可变对象:字典、列表、集合、自定义对象
不可变对象:数字、字符串、元祖、function

3.不可变对象中包含可变对象:
当不可变对象中包含可变对象的时候,该部分的可变对象的是可变的。因为可变对象本身没有变动,只是里面的值引用指向变动了。

a=(1,2,[3,4])
a[2][0]=1  //正常
a[2]=[1,4]  //错误

4.浅拷贝(copy)与深拷贝(deepcopy):
浅拷贝:不拷贝对象的内容,只是拷贝对象的引用;
深拷贝:拷贝对象的内容并且存储在其他内存空间,对该拷贝对象的修改不影响源对象

三、lambda表达式
基本语法:lambda arg1,arg2,arg3…:<表达式>
#arg的部分为函数的参数,<表达式>相当于函数体,返回<表达式>中计算的结果

f=lambda   a,b,c:a+b+c
print(f(2,3,4))

四、匿名函数

相关标签: python