Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python*args和**kwargs在从基类调用子类方法时遇到的问题_Python_Subclass_Args_Keyword Argument - Fatal编程技术网

python*args和**kwargs在从基类调用子类方法时遇到的问题

python*args和**kwargs在从基类调用子类方法时遇到的问题,python,subclass,args,keyword-argument,Python,Subclass,Args,Keyword Argument,当我想在基类中定义一个通用的run方法时遇到了一个问题,该方法调用子类中的一个方法。输出显示get_run_字符串中的KWARG似乎没有被调用它的方法中的KWARG正确分配。 我的密码有什么问题吗?谢谢 class Runnable(object): def __init__(self): #self.computer=ComputingHost() pass def run(self,*args,**kwargs): cmd=se

当我想在基类中定义一个通用的run方法时遇到了一个问题,该方法调用子类中的一个方法。输出显示get_run_字符串中的KWARG似乎没有被调用它的方法中的KWARG正确分配。 我的密码有什么问题吗?谢谢

class Runnable(object):
    def __init__(self):
        #self.computer=ComputingHost()
        pass
    def run(self,*args,**kwargs):
        cmd=self.get_run_string(args,kwargs)
        print kwargs
        #return cmd

def test_runnable():
    class Testr(Runnable):
        def __init__(self):
            super(Testr,self).__init__()
        def get_run_string(self,*args,**kwargs):
            print "in getrunstring ",args
            print "in getrunstring ",kwargs
            return 0
    a=Testr()
    a.run(x="aa",y="bb")

test_runnable()
在运行中,您必须使用

cmd=self.get\u run\u字符串(*args,**kwargs)

否则,您只需传递到2个未命名的参数,并在args变量中看到这两个参数。

在run中,您必须使用

cmd=self.get\u run\u字符串(*args,**kwargs)


否则,您只需传递到2个未命名的参数,并在args变量中看到它们。

预期的输出是什么?你得到了什么样的输出?预期的输出是什么?你得到了什么输出?是的。我发现运算符*和**只是将列表和dict数据类型分解到其上下文中,理解它们是否正确?是的。我发现运算符*和**只是将列表和dict数据类型分解到其上下文中,理解它们是否正确?