Python 继承模块类

Bo Peng

我有一个类,在init方法中包含一堆非特定于该类的通用变量我想创建另一个类来保存这些变量,然后让第一个类继承这些变量。

所以第二个类不是父类,而更像是一个模块类。

我怎么用python写这个?

谢谢。

Class A():
   def __init__(self):
       self.generic_variable1 = 'blah'
       self.generic_variable2 = 'blah'
       self.generic_variable3 = 'blah'
       self.generic_variable4 = 'blah'
       self.generic_variable5 = 'blah'
       self.generic_variable6 = 'blah'
   
   def generic_method1(self):
       return 'blah'
   
   def class_specific_method1(self):
       pass

创建两个类后:

Class A():
   def __init__(self):
       pass
   
   def class_specific_method1(self):
       pass

Class B():
   def __init__(self):
       self.generic_variable1 = 'blah'
       self.generic_variable2 = 'blah'
       self.generic_variable3 = 'blah'
       self.generic_variable4 = 'blah'
       self.generic_variable5 = 'blah'
       self.generic_variable6 = 'blah'
   
   def generic_method1(self):
       return 'blah'
   
二战

类可以访问的模块级字典。

d = {'k':'v','q':'r','m':'n',...}

class F:
    variables = d
    def __init__(self,...)

或者也许是 collections.namedtuple 而不是字典来给你访问 -instance.variables.attr而不是 instance.variables[attr]` 。

如果您想要单独的属性:

d = {'k':'v','q':'r','m':'n'}

class F:
    def __init__(self):
        for attr,val in d.items():
            setattr(self,attr,val)

或者在类之外设置属性

d = {'k':'v','q':'r','m':'n'}

class F:
    def __init__(self):
        pass

for k,v in d.items():
    setattr(F,k,v)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章