• day04 Python一些内置函数及装饰器


    一、内置函数

    divmod()     divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数,返回结果类型为tuple
    callable()    可否被调用
    chr()   将一个数字转换为ascii表中的字符
    ord()   将一个字符转换为ascii表中的数字位置
    compile()   将字符串编译成Python代码
    exec()      执行上面编译完成的Python代码,不返回结果
    evel()     执行表达式,并返回结果
    isinstance()  判断对象是否为某个类的实例
    filter(函数,可迭代对象)   循环第二个参数(可迭代对象),让每个元素作为第一个参数(函数)的参数执行一侧函数,如果函数的返回值为True,表示元素合法,将元素添加到filter()的返回值中
    map(函数,可迭代对象)   循环第二个参数(可迭代对象),让每个元素作为第一个参数(函数)的参数执行一侧函数,如果函数的返回值为True,则返回True
    globals()    所有的全局变量
    locals()     所有的局部变量
    len()  关于len函数,Python3里默认按照字符的长度来计算,可以通过bytes()函数将字符转换为字节,从而计算出字符的字节长度,而在Python2里默认是按照字节长度来计算的,不能求出字符的长度

    二、装饰器

    def deco(func):
        
        print func
        
        return func
    
    @deco
     
    def foo():pass
    
    foo()
    
    #第一个函数deco是装饰函数,它的参数就是被装饰的函数对象。我们可以在deco函数内对传入的函数对象做一番“装饰”,然后返回这个对象(记住一定要返回 ,不然外面调用foo的地方将会无函数可用。实际上此时foo=deco(foo))
    
    #有参数装饰器
    
    def decomaker(arg):  
        '通常对arg会有一定的要求'  
        """由于有参数的decorator函数在调用时只会使用应用时的参数  
           而不接收被装饰的函数做为参数,所以必须在其内部再创建  
           一个函数  
        """  
        def newDeco(func):    #定义一个新的decorator函数  
            print func, arg  
            return func  
        return newDeco  
    @decomaker(deco_args)  
    def foo():pass  
    foo()  
    
    #第一个函数decomaker是装饰函数,它的参数是用来加强“加强装饰”的。由于此函数并非被装饰的函数对象,所以在内部必须至少创建一个接受被装饰函数的函数,然后返回这个对象(实际上此时foo=decomaker(arg)(foo))

    装饰器的执行顺序:

    QQ图片20160612115546

  • 相关阅读:
    ASP.NET前台代码绑定后台变量方法总结
    <%# Eval("name")%>与<%# Bind("name")%>
    验证数字的正则表达式集
    品高:C#与JAVASCRIPT函数的相互调用:1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数?
    Visual Web Developer 的自定义WebForm模板
    关键字加亮JS方法
    vss安装,设置以及与vs2005联合项目操作(转)
    删除SQL中重复行
    完全兼容的 鼠标滚轴缩放图片
    为循环的repeater的第一行加个样式
  • 原文地址:https://www.cnblogs.com/xuanouba/p/5557952.html
Copyright © 2020-2023  润新知