我如何从基类引用Python中派生类的_uinit__;方法?

我如何从基类引用Python中派生类的_uinit__;方法?,python,oop,inheritance,yaml,class-method,Python,Oop,Inheritance,Yaml,Class Method,下面是SO问题,我想创建一个基类,它有一个from_yaml classmethod,还可以删除不需要的关键字arg,如下所示。但是我认为我需要从基类引用派生类的\uuuu init\uuuu方法。如何在Python中实现这一点 def get_valid_kwargs(func, args_dict): valid_args = func.func_code.co_varnames[:func.func_code.co_argcount] kwargs_len = len(fu

下面是SO问题,我想创建一个基类,它有一个from_yaml classmethod,还可以删除不需要的关键字arg,如下所示。但是我认为我需要从基类引用派生类的
\uuuu init\uuuu
方法。如何在Python中实现这一点

def get_valid_kwargs(func, args_dict):
    valid_args = func.func_code.co_varnames[:func.func_code.co_argcount]
    kwargs_len = len(func.func_defaults)  # number of keyword arguments
    valid_kwargs = valid_args[-kwargs_len:]  # because kwargs are last
    return dict((key, value) for key, value in args_dict.iteritems()
                if key in valid_kwargs)


class YamlConstructableClass(object):
    @classmethod
    def from_yaml(cls, yaml_filename):
        file_handle = open(yaml_filename, "r")
        config_dict = yaml.load(file_handle)
        valid_kwargs = get_valid_kwargs(AnyDerivedClass.__init__, config_dict)  # I don't know the right way to do this
        return cls(**valid_kwargs)


class MyDerivedClass(YamlConstructableClass):
    def __init__(self, some_arg, other_arg):
        do_stuff(some_arg)
        self.other_arg = other_arg

derived_class = MyDerivedClass.from_yaml("my_yaml_file.yaml")

您已经有了对正确类的引用:
cls

valid_kwargs = get_valid_kwargs(cls.__init__, config_dict)

类方法绑定到它所调用的类对象。对于
MyDerivedClass.from_yaml()
cls
不绑定到父类,而是绑定到
MyDerivedClass
本身。

您已经有了对正确类的引用:
cls

valid_kwargs = get_valid_kwargs(cls.__init__, config_dict)

类方法绑定到它所调用的类对象。对于
MyDerivedClass.from_yaml()
cls
不绑定到父类,而是绑定到
MyDerivedClass
本身。

我需要它来调用get\u valid\u kwargs调用,我需要它来调用get\u valid\u kwargs调用