第十四章:应用构建模块-cmd:面向行的命令处理器-命令参数

14.5.2 命令参数
下面这个例子做了一些改进来消除存在的一些问题,并为greet命令增加帮助。

import cmd


class HelloWorld(cmd.Cmd):

    def do_greet(self,person):
        """greet [person]
        Greet the named person"""
        if person:
            print("hi,",person)
        else:
            print('hi')

    def do_EOF(self,line):
        return True

    def postloop(self):
        print()

if __name__ == '__main__':
       HelloWorld().cmdloop()

增加到do_greet()的docstring会成为这个命令的帮助文本。

输出显示了greet的一个可选参数person。尽管这个参数对命令来说是可选的,但是命令和回调方法之间有一个区别。方法总算有参数,不过有时这个值是一个空串。要由命令处理器负责确定空参数是否合法,或者是否要对命令做进一步的解析和处理。在这个例子中,如果提供了一个人名,那么便会提供个性化的欢迎词。
不论用户是否指定参数,传递到命令处理器的值都不会包含命令本身。这会简化命令处理器中的解析,特别是如果需要多个参数。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值