zoukankan      html  css  js  c++  java
  • python核心高级学习总结1*args和**kwargs

    *args 和 ** kwargs 的用法

    首先,这两者在用法上都是用来补充python中对不定参数的接受。
    比如下面的列子
    def wrappedfunc(*args, **kwargs):
    print("%s called at %s"%(func.__name__, ctime()))  
    

    这是一个函数

     
    其次,在调用时候 1.   wrappedfunc('1','2')#这样会自动将'1','2'这两个参数赋值给args
    此时args这个变量就是一个list
             2.   wrappedfunc(a='1',b='2')#这样会自动将a='1',b='2'这两个键值对传递给kwargs
    此时kwargs这个变量就是一个dict
    如果对Python这两个类型熟悉的,其实也可以理解,当传递的值是两者混合的时候,python编译器会将这两者分别代入对应的list和dict来使用。

    callable()方法的使用

    callable 用来检查变量的类型,对于函数或对象返回true,对于普通的值类型返回false。需要注意的是,类对象返回的True,类实例对象返回的是False,它在装饰器中的用法如下,装饰器函数其实是这样⼀个接⼝约束, 它必须接受⼀个callable对象作为参数, 然后返回⼀个callable对象。 在Python中⼀般callable对象都是函数, 但也有例外。 只要某个对象重写了 __call__() ⽅法, 那么这个对象就是callable的。

    >>> re.match(r"aa(\d+)","aa2343ddd").group(1)
    '2343'
    >>> re.match(r"aa(\d+?)","aa2343ddd").group(1)
    '2'
    >>> re.match(r"aa(\d+)ddd","aa2343ddd").group(1)
    '2343'
    >>> re.match(r"aa(\d+?)ddd","aa2343ddd").group(1)
    '2343'
     
  • 相关阅读:
    Zookeeper and The Infinite Zoo(CF1491D)(位运算)
    树上差分
    最近公共祖先
    极角排序
    最长路spfa
    树的基础
    树的遍历~
    最小圆覆盖板子
    动态凸包(询问点是否在凸包内部)
    凸包内最大三角形
  • 原文地址:https://www.cnblogs.com/hulichao/p/python_arg.html
Copyright © 2011-2022 走看看