menu python命令行

时间:2013-12-02 13:57:33

标签: python command-line menu

我有这个菜单。它动态加载类并调用方法。一切都很好,但是当我写'退出'时,方法打印你好。欢迎提出任何建议吗?

class ClassA(object):
    def main(self):
        libs = self.directory()
        print '***************************************************'
        print '* Menu'
        for item in libs :
          print '** ' + item 
        print '***************************************************'

        while True:
            module_name = raw_input(">>> ")

            if module_name != "":
                if module_name == 'exit':
                  break 
                elif module_name in libs:  
                  lib = __import__(module_name)
                  class_ = getattr(lib, module_name)
                  theclass = class_()
                  theclass.myfunction() 
                  break   
                else:
                  print 'Module does not exist' 

B类

class ClassB(object):
    def myfunction(self):
        print 'hello'

1 个答案:

答案 0 :(得分:0)

在对代码进行一些主要修改之后,这可能是您想要的:

import glob

class ClassB():
    def myfunction(self):
        print 'hello'

if __name__ == '__main__':
    libs = [item[:-3] for item in glob.glob("*.py")]
    print '***************************************************'
    print '* Menu'
    for item in libs :
      print '** ' + item
    print '***************************************************'

    while True:
        module_name = raw_input(">>> ")
        if module_name != "":
            if module_name == 'exit':
              break 
            if module_name in libs: 
              lib = __import__(module_name)
              class_ = getattr(lib, 'ClassB')
              theclass = class_()
              theclass.myfunction() 
              break   
            else:
              print 'Module does not exist'