class myprogram(object):
def __init__(self)
self.prepare()
def prepare(self):
# some initializations
self.prepareCommands()
def prepareCommands(self):
self.initCommand(" updateDatabase", self.updateDatabase)
self.initCommand(" getImages", self.getImages)
# and so on
def initCommand(self, cmd, func):
options = sys.argv
for option in options:
if option.find(cmd)!=-1:
return func()
# my commands
def updateDatabase(self):
#...
def getImages(self):
#...
if __name__ == "__main__":
p = myprogram()
他们之间没有任何固定的联系。您链接到的问题似乎是一个程序,它可以执行几种不同的操作之一,命令行参数在它们之间切换。这些的事情碰巧是在程序中使用方法实现的。在
这个问题暗示了他们使用了
argparse
之类的东西来编写它们之间的粘合;但是方法的使用只是特定程序的实现细节。在我只是像这样使用这个类,这似乎不是一个很好的主意,因为一旦你得到很多命令,它就很难维护了。在
编辑1: 这里是我刚刚实施的一种更干净的方法:
在我的程序.py公司名称:
^{pr2}$在命令.py公司名称:
^{3}$编辑2:我现在用一个更完整的例子Class too big and hard to add new features更新了我的问题
相关问题 更多 >
编程相关推荐