zoukankan      html  css  js  c++  java
  • python-*args、**kargs用法

    *args和**kwargs使用

    可变位置参数:
      *args:是一个元组,传入的参数会被放进元组里。
    可变关键字参数:
      **kwargs:是一个字典,传入的参数以键值对的形式存放到字典里。

    def test1(*args):
        print(type(args),args)
    test1(1,2,3)
    
    def test2(**kwargs):
        print(type(kwargs),kwargs)
    test2(a=1,b=2)
    
    def test3(*args,**kwargs):
        print(type(args),args)
        print(type(kwargs), kwargs)
        print(args,kwargs)
    test3(1, 2, 3,a=1,b=2)

    out:
    <class 'tuple'> (1, 2, 3)
    <class 'dict'> {'a': 1, 'b': 2}

    <class 'tuple'> (1, 2, 3)
    <class 'dict'> {'a': 1, 'b': 2}
    (1, 2, 3) {'a': 1, 'b': 2}

    target和args使用
    target一般是一个可调用对象,比如函

    def work(threadName, delay):
        print(threadName,delay)
    
    class Entity:
        def __init__(self,a):
            self.a=a
    
        def __call__(self, *args,**kwargs):
            print(args,kwargs)
    
    #python threading.Thread(target=***, args=(****,))
    #target一般是一个可调用对象,比如函数
    #如果你想让一个类作为这个参数,可以加上__call__方法,让类变为可调用对象
    #如果你想让一个变量作为这个参数,可以重写这个变量所在类的__callable__方法,让变量可调
    
    from threading import Thread
    t1=Thread(target=work,args=("Thread-1",1))
    t1.start()
    
    e = Entity(1)
    t2=Thread(target=e,args=("Thread-2",3))
    t2.start()
  • 相关阅读:
    Java基础-Object通用方法
    Java基础-关键字
    Java基础-运算
    Java基础-String
    Java基础-数据类型
    GCN-GAN:对加权动态网络的非线性时间链路预测模型
    长短期记忆(long short-term memory, LSTM)
    CSP 201604-1 折点计数
    介绍一个好东西C++11
    malloc free使用规范
  • 原文地址:https://www.cnblogs.com/shuzf/p/12022824.html
Copyright © 2011-2022 走看看