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
    基本框架
  • 相关阅读:
    .NET互操作技术杂谈
    VS2008 Remote Debug HOW TO
    Entity Framework一对多关系或一对一关系删除子对象的方法
    Associations in EF Code First: Part 1 – Introduction and Basic Concepts
    如何管理Entity Framework中得事务
    在asp.net mvc3中编译视图文件
    entity framework中对关系使用默认规则与配置
    使用Entity Framework时动态生成lamda表达式
    asp.net mvc 身份验证中返回绝对路径的ReturnUrl
    Entity Framework 事务处理SaveChanges(false)
  • 原文地址:https://www.cnblogs.com/liujjpeipei/p/9025365.html
Copyright © 2011-2022 走看看