亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3473 | 回復(fù): 0
打印 上一主題 下一主題

python 中的 cmd 模塊 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-10-16 17:09 |只看該作者 |倒序瀏覽

今天看 gadfly 的源碼時,看到一段代碼:
               
class GadflyShell(cmd.Cmd):
    prompt = 'GF> '
    prompt2 = '... '
    # ... 省略
很好奇,遂搜索相關(guān)信息。
類cmd.cmdloop 中執(zhí)行流程如下:
cmdloop()
    |
    |
    |-- [VF]preloop()
    |-- while not stop:
             |
      |-- read line
      |-- [VF]precmd()
             |-- onecmd()
             |-- [VF]postcmd()
             +-- [VF]postloop()
Note: [VF] - virtual member function
運行時,接收用戶輸入格式為:
    命令 + 字符串
命令: 由 a-z, A-Z, 0-9 及 下劃綫 構(gòu)成
其中
a. 如果命令為?:
執(zhí)行 do_help 函數(shù), 相當(dāng)與 do_help 的快捷方式
b. 如果命令為! :
如果定義了 do_shell, 則執(zhí)行 do_shell函數(shù), 有點像  do_shell 的快捷方式 :)
   
c. 如果不輸入命令直接按回車:
不輸入信息, 直接按回車, 執(zhí)行 self.emptyline(), 默認(rèn)為重複上一條命令。如果不想這樣,需要重定義 emptyline()
d. 程序的命令提示符默認(rèn)為 :(Cmd),如果你想改變,請重置類中成員變量 prompt
e. 程序中定義一個命令很簡單,定義一個函數(shù)即可.
函數(shù)格式: 
def do_cmdname(self, arg):
    """
    arg 獲取的值為 字符串類型
    """
    ...
如果函數(shù)返回了一個 not false 的值, 則程序會退出!
我寫的測試程序:
import cmd
import sys
import time
import os
class MyTest(cmd.Cmd):
    prompt="$"
    def __init__(self):
        cmd.Cmd.__init__(self)
    pass
    def do_test(self, arg):
        print "%s: "%type(arg), arg
        pass
    def precmd(self, line):
        """do sth: connect to db or ..."""
        return line
    def postcmd(self, stop, line):
        print "[Input is '%s', state is %s]"%(line,stop)
        sys.stdout.flush()
        return stop
    def do_shell(self,arg):
        os.system(arg)
        pass
    def do_exit(self, arg):
        #sys.exit(0)
        return "bye"
a = MyTest()
a.cmdloop()


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/10686/showart_2072067.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP