用python中的*args和**kwds调用父类的函数

2024-04-27 15:31:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我认为下面的代码应该打印a\n('b')\n{'a':1}。但是,实际上它打印“a\n('b',{'a':1})\n{}“为什么?我检查了这些discussions,似乎我的代码没有问题。在

class Parent(object):
    def f(self, a, *args, **kwargs):
        print a
        print args
        print kwargs

class Child(Parent):
    def f(self, a, *args, **kwargs):
        super(Child, self).f(a, *args, **kwargs)

c = Child()
c.f("a", "b", {"a":1})

Tags: 代码selfchildobjectdefargskwargsclass
1条回答
网友
1楼 · 发布于 2024-04-27 15:31:00

这是预期的输出。你似乎认为你的字典应该被当作关键字参数。它不是,它也是一个像b一样的位置论元

关键字参数akw的调用方式如下:

 f("a", "b", akw=1):
      # your code

相关问题 更多 >