我试图提供一个允许人们编写自己的插件的框架。这些插件基本上是派生类。我的基类需要一些变量来初始化,我如何在基类初始化时不必让派生类提供变量就可以初始化基类?在
#!/bin/python
class BaseClass():
def __init__(self,config):
self.config=config
def showConfig(self):
print "I am using %s" % self.config
class UserPlugin(BaseClass):
def __init__(self,config):
BaseClass.__init__(self,config)
def doSomething(self):
print "Something"
fubar = UserPlugin('/tmp/config.cfg')
fubar.showConfig()
我的目标是避免在UserPlugin类中定义config参数,因为这是我不希望编写插件的用户感到麻烦的事情。在
可以使用argument lists将任何剩余参数传递给基类:
根据你的密码,这个怎么样?这避免了使用单独的全局,而是使用一个class属性,该属性可以作为所有派生类及其实例的成员访问。在
这是我之前提到的另一种方法。请记住,如果您想更改
BaseClass.config
本身的值,您应该直接访问它(即BaseClass.config = '/foo/path'
;否则,您最终将创建一个自定义的UPinstance.config
值,而使BaseClass.config
保持不变。在相关问题 更多 >
编程相关推荐