***第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)

重重重点:函数传递、高阶函数、lambda表达式python进阶
摘要由CSDN通过智能技术生成

参数传递

参数传递机制

"""

函数参数传递机制和赋值机制是一样的,其本质就是传递内存地址,这就是引用传递

 a传进来的时候传进来的是内存地址

 如果实在不理解,你可以以为是  x= a

"""

def isid(x):

    #打印参数的内存地址

    print(id(x))

a = 10

#变量的内存地址

print(id(a)) #140731588047408

#a变成的参数,打印参数内存地址

isid(a) #140731588047408

默认参数

#定义一个带有默认参数的函数

def add(x,y=10):

    sum01 = x+y

    return sum01

"""

1.add(2)  x=2  y=10

2.add(2,3)  x=2  y=3

"""

print(add(2)) #12

print(add(2,3)) #5

"""

 能不能传参传入一个序列类型,比如list,让他默认是[]

"""

def add(list01 = []):

    list01.append(1)

    return list01

#第一调用

print(add()) #[1]

#第二次调用

print(add()) #[1, 1]

#第三次调用 

print(add()) #[1, 1, 1]

#不定数目的参数

一个 *

"""

 一个* :代表的是可变参数(就是可以是多个值)

"""

def add(x,*y):

    sum01 = x

    for i in y:

        sum01 += i

    return sum01

print(add(1,2,3,4,5)) #15

两个*

"""

 **y代表可以使用任意  键值(字典)  作为参数

 **y就相当于字典类型

"""

def func_add(x,**y):

    sum01 = x

    #切记这里是字典的循环

    for k,v in y.items():

        print(k,v)

        #把v(值)进行和x相加

        sum01 += v

    return sum01

"""

 调用

a=3,b=4,c=5 ----> {"a":3,"b":4,"c":5}

"""

print(func_add(1,a=3,b=4,c=5)) #13

练习

"""

 定义一个函数,传入一个参数1,传入一个字典{a:2,b:4,c:1,d:3},把每个值进行累乘,返回累乘的结果

"""

name

执行本文件的时候,name==main

#打印name这个属性

#执行本文件的时候,打印的是main,__name__ == __main__

print("1、"+__name__) #1、__main__

2.在被import导入到别的文件的时候,name==文件名字

"""

 一个文件就是一个模块,导入模块,就相当于导入文件,可以直接写

    import  文件名字

"""

import 本文件 as bwj

#在其他类中运行导入的文件名字,__name__==文件名字

print(bwj.__name__) #本文件

#高阶函数

定义

高阶函数是一个( 以函数为参数,或者以函数为返回值的)函数

函数可以是参数,参数是变量,那么函数可以是变量吗

参数其实就是变量进行了赋值,函数能不能是变量

函数为变量(补充&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值