命令循环实现环境

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()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型