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'
     
  • 相关阅读:
    拍照
    ORACLE DATABASE 10G FALSHBACK 知识整理
    在webx.ml中 配置struts2 后 welcome-file-list 失效的解决办法
    基于内容的图像检索技(CBIR)术相术介绍
    Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
    终端复用工具tmux的使用
    泛型的使用
    1.2.4 Java Annotation 提要
    Java算法--串的简单处理
    【基础练习】【线性DP】codevs3641 上帝选人题解
  • 原文地址:https://www.cnblogs.com/hulichao/p/python_arg.html
Copyright © 2011-2022 走看看