函数进阶二

本文详细介绍了Python中函数的各种高级用法,包括函数名的多种使用方式、闭包的概念及其实现方法,以及装饰器的基本原理。通过这些知识点的学习,读者能够更深入地理解Python语言的灵活性,并掌握一些实用的编程技巧。

函数名:

1、直接打印函数名,打印的是函数名内存地址

def func():
    pass
print(func)
#输出:<function func at 0x00000021BB452E18>

2、函数名可以赋值给其他变量

def func():
    print(666)
f = func
f()
# def
#输出:666

3、函数名可以当作容器类的元素

def func1():
    print(11)
def func2():
    print(22)
def func3():
    print(33)
li = [func1(),func2(),func3()]
#输出:11    22    33

4、函数名可以当作函数的参数

def func1():
    print(111)
def func2(a):           #执行函数,把func1传入。此时 a= func1
    a()                       # func1()
func2(func1)      
#输出:111

5、函数名可以作为函数的返回值

def func2():
    print(222)
def func3(x):             #2      x = func2
    return x              #3     返回 func2
ret = func3(func2)        #1
ret()                     #       ret = func2
#输出:222

 

闭包:

内层函数对外层函数(非全局变量)的引用

闭包用处:如果说,内层函数是闭包,python内部有个机制,遇到闭包会在内存中开辟哟个内存空间,不会关闭(不是全局变量,但不关闭)

def func():
    a = 1
    def func2():
        print(a)           #这个a是在上层函数调用过来的
    func2()
func()
#输出:a

闭包检测:

def func():
    a = 1
    def func2():
        print(a)
    func2()
    print(func2.__closure__)   #检查是否是闭包,如果打印None就不是,如果打印的有cell,就是闭包
func()                                                                

如何执行函数内层的函数:

① 就在内部函数中先执行本函数

②返回函数内层函数名,再加()

引用  import  time

time.time()   19**年到现在的时间

time.sleep(0.1)停顿      0.1 是秒

装饰器:

在不改变原函数基础上,给函数添加功能

转载于:https://www.cnblogs.com/pygg/p/8406835.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值