我有一个类继承自使用__new__
的不可变类型。第二个函数的执行过程中,我该如何添加一个新的函数呢?在
class ImmutableClass(ImmutableType):
def functionA(param1=None, param2=None):
# Do some stuff
stuff self.functionB(param2)
# Do some more stuff
return stuff
def functionB(param2):
# Do some stuff
newObjects = [ImmutableClass() for x in range(len(param2))]
stuff = self.functionC(newObjects)
# Do some more stuff
return stuff
def functionC(param3=None):
# Do some stuff
return stuff
class SomeClass(ImmutableClass):
def __new__(cls, *args, **kwargs):
return ImmutableClass.__new__(SomeClass, *args, **kwargs)
def functionA(self, newParameter=True):
# How do I pass newParameter to functionC?
return super(ImmutableClass, self).functionA(*args, **kwargs)
def functionC(self, newParameter=True):
# How do I get the parameter from functionA?
if not newParameter:
print 'Success!'
return super(ImmutableClass, self).functionC(*args, **kwargs)
我知道我可以为链中所有ImmutableClass
的函数添加**kwargs,但这感觉有点混乱。这些函数的调用方可能会在出错之前传递无效参数一段时间,或将标志传递给某个意外的函数。我希望有一个明显的解决办法我看不到。在
我知道ImmutableClass
有{functionB
,然后调用{functionB
中的调用在代码的中间,所以我不能简单地预先添加/追加新的调用。我不能使用成员变量(据我所知),因为__new__
在调用中途重新初始化了它。我可以访问ImmutableClass
的源代码,但我不想修改它,因为ImmutableClass
应该不知道{SomeClass
的部分启动第二个function调用,这可能会导致意想不到的事情。在
目前没有回答
相关问题 更多 >
编程相关推荐