访问派生类的参数

时间:2012-09-01 17:03:13

标签: python

这是我问here的问题的后续内容,但当时我还不太清楚......

所以,我有一个基类和一个派生类。基类需要知道用于创建派生类实例的参数(以便它可以将它们存储到磁盘中,以后我们可以重新创建派生实例)。基类本身不需要采用任何参数。

这样做的显而易见的方法是要求派生类的开发人员将其参数传递给基类“__init__()”。但是,如果可能的话,我想让它更加自动化;得到不匹配是一个容易犯的错误,基类的重点是隐藏机器与开发派生类的机制。

我提出了这个解决方案 - 这种方法有什么问题吗?

class Base(object):
  def __new__(typ, *args, **kwargs):
    obj = object.__new__(typ)
    obj._args = args
    obj._kwargs = kwargs
    return obj

class Derived(Base):
  def __init__(self, arg1, arg2):
    pass # obviously will do stuff here

inst = Derived('salt', arg2='pepper')
print inst, inst._args, inst._kwargs

0 个答案:

没有答案