将值附加到类继承中的dict

时间:2019-02-11 16:11:16

标签: python abstract-class

我正在编写一个函数,该函数返回具有一个键和多个值的字典。我想让我的函数尽可能通用,以便我可以向一个现有键添加尽可能多的值。 以下是我编写的代码:

yum install mod_security mod_security_crs

这无法正常工作

我想找到一种巧妙的方法,使import abc class Properties(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def spark_driver_extra_javaOptions(self, job_name, data, *args, **kwargs): return { 'spark.driver.extraJavaOptions': '-DAppConfig.appName=%s -DAppConfig.domain=%s -D%s.Options.jobName=%s -DTrm.Metadata.outputBase=%s' % ( job_name, data, job_name, data)} class Childd(Properties): def spark_driver_extra_javaOptions(self,job_name, data, prefix, dataset ): return { 'spark.driver.extraJavaOptions': '-DAppConfig.app 类继承的方法Child将新值附加到现有键上。

1 个答案:

答案 0 :(得分:0)

  

我想找到一种巧妙的方法,使Child类继承的方法spark_driver_extra_javaOptions将新值附加到现有键上。

不必太喜欢抽象类或其他python魔术,只需如伪代码中所示调用父方法即可

class Properties(object):

    def spark_driver_extra_javaOptions(*args, **kwargs):
        .... # Do stuff
        return {'spark.driver.extraJavaOptions': [...]}

class Child(Properties):
    def spark_driver_extra_javaOptions(*args, **kwargs):
        some_stuff = super().spark_driver_extra_javaOptions(*args, **kwargs) # call parent method
        .... # do more stuff
        more_stuff = [1, 2, 3, ... some more stuff]
        some_stuff['spark.driver.extraJavaOptions'].extend(more_stuff)
        return some_stuff