我正在编写一个函数,该函数返回具有一个键和多个值的字典。我想让我的函数尽可能通用,以便我可以向一个现有键添加尽可能多的值。 以下是我编写的代码:
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
将新值附加到现有键上。
答案 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