zoukankan      html  css  js  c++  java
  • python一些语法糖用法

    @修饰符

      '@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行。也就是说@A def f(): 是非法的。 只可以在模块或类定义层内对函数进行修饰,不允许修修饰一个类。一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。

      本质上讲,装饰符@类似于回调函数,把其它的函数(暂且称为目的参数)作为自己的入参,在目的函数执行前,执行一些自己的操作,比如:计数、打印一些提示信息等,然后返回目的函数。下面列举一个简单的例子。

    import time
    
    def time(func):
        print(time.ctime())
        return func()
        
    @time  # 从这里可以看出@time 等价于 time(xxx()),但是这种写法你得考虑python代码的执行顺序
    def xxx():
        print('Hello world!')
    
    运行结果:
    Wed Jul 26 23:01:21 2017
    Hello world!

    *args和**kwargs

      当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前。例如:foo(name,age,date=newdate,birthday=date) 

    super()

  • 相关阅读:
    TX2--安装跑一python3.5
    luogu P4762 [CERC2014]Virus synthesis (回文自动机)
    牛客 128A 礼物 (组合计数)
    后缀自动机学习
    Codeforces Round #309 (Div. 1)
    Vanya and Scales CodeForces
    5-45 航空公司VIP客户查询 (25分) HASH
    转载 字符串hash
    5-15 QQ帐户的申请与登陆 (25分) HASH
    5-14 电话聊天狂人 (25分) HASH
  • 原文地址:https://www.cnblogs.com/Egbertbaron/p/7242515.html
Copyright © 2011-2022 走看看