zoukankan      html  css  js  c++  java
  • py 5.11

    一、函数名的应用(第一类对象)

    1.打印print函数名得到的是函数名的地址。
    #2.函数名可以被赋值。func = f  f()等同于func().
    #3.函数名相当于变量,唯一区别:函数名可以调用函数。
    #4.可以被放入容器类基础数据类型中的元素,然后实现循环调用。
    #5.可以作为返回值,return 函数名(不加括号等同于返回一个变量)(加括号表示要返回调用函数时被返回的值)
    View Code

    二、闭包

    #二、闭包
    #1.调用父级(上一层、非全局)的变量,内层函数对外层函数(上一级非全局)的变量的引用。
    #2.判断是否是闭包:_closure_ : 返回cell:是闭包。 返回None:不是闭包。
    #3.py解释器中,当执行到函数发现其中有闭包时,函数执行结束临时名称空间不会关闭,只有一直长时间不用时,临时名称空间才会关。目的
    # 是为了爬虫时不占内存。
    闭包

    三、装饰器

    #三、装饰器:
    #功能:不改变原函数的基础上,给某个函数增加一些其它的功能。
    #装饰器举例:加执行时间
    import time
    def timmer(f):                     #形参一定是被装饰的函数中的函数名。
        def inner(*args,**kwargs):     #用动态参数来接收各种各样的实参。
            start_time = time.time()
            ret = f(*args,**kwargs)    #调用函数中的*和**表示把inner聚合的再次打散,然后传给自己的形参。
            end_time = time.time()
            print('此函数的执行时间为%d' % (end_time - start_time))
            return ret     #666
        return inner       #将inner变量返回给调用者timmer(),timmer()又将值赋给变量login.login() = inner()
    
    @timmer                #相当于一步变量赋值 login = timmer(login)
    def login(a,b):
        print(a,b)
        return 666        #将值返回给装饰器中的调用者f()
    
    print(login(2,3))      #return返回来值以后需要print才能显示出来。
    装饰器
    # def wrapper(f):
    #     def inner(*args,**kwargs):
    #         '''执行被装饰函数之前的操作'''
    #         ret = f(*args,**kwargs)
    #         """执行被装饰函数之后的操作"""
    #         return ret
    #     return inner
    基本框架
  • 相关阅读:
    SQL创建的几种存储过程
    关于freemaker的一点使用技巧
    freemaker时间格式转换,精确到毫秒
    递归算法
    网易开发工程师编程题 比较重量 Java
    JavaScript tasks, microtasks, queues and schedules
    1000分以下局目标
    Lua简介
    浅谈Wireshark的基本操作
    adb操作
  • 原文地址:https://www.cnblogs.com/liujjpeipei/p/9025365.html
Copyright © 2011-2022 走看看