在 class 继承中将值附加到字典

Append values to dict in class inheritance

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

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 class 继承方法 spark_driver_extra_javaOptions 将新值附加到现有键。

I want to find a clever way to make the Child class inherited method spark_driver_extra_javaOptions append new values to the existing key.

不要太喜欢抽象 类 或其他 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