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