命令循环实现环境
CmdLoop的Python项目详细描述
用于编写简单交互命令循环环境的基类。
command loop提供了用于编写简单交互用户环境的基类。它是围绕子类设计的,有一个简单的命令
解析器,初始化起来很简单。
这里有一个使用commandloop编写的小环境:
ps1='hello>;'
@cmdloop.aliases('hello','hi',,'hola')
@cmdloop.shorthelp('say hello')
@cmdloop.usage('hello target')
def hellocmd(self,flags,args):
'
'
向target打招呼,默认为'world'
'
如果是flags或len(args)>;1:
如果args:
target=args[0]
否则:
target=self.default\target
打印>;>;self.out,'hello%s!'%target
@cmdloop.aliases('quit')
def quitcmd(self,flags,args):
'
退出环境。
'
引发cmdloop.haltloop
这里有一个更复杂的示例:
class hellogoodbye(cmdloop.commandloop):
ps1='hello>;'
def初始化(self,默认“目标=”world“):
self.default“目标=默认”目标
self.target“列表=[]
@cmdloop.aliases('hello','hi','hola')
@cmdloop.shorthelp('say hello')
@cmdloop.usage('hello[target]')
def hellocmd(self,flags,args):
'
向target打招呼,它默认为“world”
“
if flags或len(args)>;1:
raise cmdloop.invalidarguments
if args:
target=args[0]
else:
target=self.default\target
如果target不在self.target\u列表中:
self.target_list.append(target)
打印>;>self.out,'hello%s!'%target
@cmdloop.aliases('goodbye')
@cmdloop.shorthelp('say goodbye')
@cmdloop.usage('goodbye target')
def goodbyecmd(self、flags、args):
'
'
'
'
'
如果是flags或len(args)!=1:
引发CmdLoop.InvalidArguments
target=args[0]
如果目标在self.target目录中:
打印>;>self.out,再见%s!'%target
self.target_list.remove(target)
否则:
打印>;>self.out,“我没有跟%s打招呼。”%target
@cmdloop.aliases('quit')
def quitcmd(self,flags,ARGs:
''BR/>退出环境。
'BR/>提高CMDROPF。HaltLoop
BR/> DEFF ONEXCELL(自我):
如果LeN(Bo.TalkType列表):
自我。))
对于self.target_列表中的目标:
self.pushcommands((“再见,目标))
否则:
raise cmdloop.haltloop
hellogoodbey().runloop()
command loop提供了用于编写简单交互用户环境的基类。它是围绕子类设计的,有一个简单的命令
解析器,初始化起来很简单。
这里有一个使用commandloop编写的小环境:
@cmdloop.aliases('hello','hi',,'hola')
@cmdloop.shorthelp('say hello')
@cmdloop.usage('hello target')
def hellocmd(self,flags,args):
'
'
向target打招呼,默认为'world'
'
如果是flags或len(args)>;1:
如果args:
target=args[0]
否则:
target=self.default\target
打印>;>;self.out,'hello%s!'%target
@cmdloop.aliases('quit')
def quitcmd(self,flags,args):
'
退出环境。
'
引发cmdloop.haltloop
这里有一个更复杂的示例:
class hellogoodbye(cmdloop.commandloop):
ps1='hello>;'
def初始化(self,默认“目标=”world“):
self.default“目标=默认”目标
self.target“列表=[]
@cmdloop.aliases('hello','hi','hola')
@cmdloop.shorthelp('say hello')
@cmdloop.usage('hello[target]')
def hellocmd(self,flags,args):
'
向target打招呼,它默认为“world”
“
if flags或len(args)>;1:
raise cmdloop.invalidarguments
if args:
target=args[0]
else:
target=self.default\target
如果target不在self.target\u列表中:
self.target_list.append(target)
打印>;>self.out,'hello%s!'%target
@cmdloop.aliases('goodbye')
@cmdloop.shorthelp('say goodbye')
@cmdloop.usage('goodbye target')
def goodbyecmd(self、flags、args):
'
'
'
'
'
如果是flags或len(args)!=1:
引发CmdLoop.InvalidArguments
target=args[0]
如果目标在self.target目录中:
打印>;>self.out,再见%s!'%target
self.target_list.remove(target)
否则:
打印>;>self.out,“我没有跟%s打招呼。”%target
@cmdloop.aliases('quit')
def quitcmd(self,flags,ARGs:
''BR/>退出环境。
'BR/>提高CMDROPF。HaltLoop
BR/> DEFF ONEXCELL(自我):
如果LeN(Bo.TalkType列表):
自我。))
对于self.target_列表中的目标:
self.pushcommands((“再见,目标))
否则:
raise cmdloop.haltloop
hellogoodbey().runloop()