python的main函數


python的main函數

https://blog.csdn.net/ppppfly/article/details/53415999

先上代碼,再上說明。

  • 創建一個Python文件say_hi.py
# coding=utf-8 import getopt import sys if __name__ == '__main__': opts, args = getopt.getopt(sys.argv[1:], 'hn:w:', ['name=', 'word=', 'help']) name = 'No Name' word = 'Hello' for key, value in opts: if key in ['-h', '--help']: print '一個向人打招呼的程序' print '參數:' print '-h\t顯示幫助' print '-n\t你的姓名' print '-w\t想要說的話' sys.exit(0) if key in ['-n', '--name']: name = value if key in ['-w', '--word']: word = value print '你好,我叫', name, ',', word
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 好了,我們運行吧
$ python say_hi.py
你好,我叫 No Name , Hello

$ python say_hi.py -h
一個向人打招呼的程序
參數:
-h      顯示幫助
-n      你的姓名
-w      想要說的話

$ python say_hi.py --help
一個向人打招呼的程序
參數:
-h      顯示幫助
-n      你的姓名
-w      想要說的話

$ python say_hi.py -n 'ppppfly' 你好,我叫 ppppfly , Hello $ python say_hi.py -n 'ppppfly' -w '我胡漢三又回來啦!' 你好,我叫 ppppfly , 我胡漢三又回來啦! $ python say_hi.py --name 'ppppfly' --word '我胡漢三又回來啦!' 你好,我叫 ppppfly , 我胡漢三又回來啦!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 解釋點什么唄

__name__ == '__main__'是Python的main函數入口。並非說,加入這句才能使用python xxx.py來執行,而是說,這里可以判斷,當前是否是直接被python直接調用執行。

getopt是一個包裝方法,用以讀取main函數后面跟着的參數。getopt.getopt(args, options[, long_options])有三個變量,args就是python xxx.py后面跟着的參數,通常就是sys.argv數組,不過我們一般會去除第一個元素,因為sys.argv的第一個元素,就是文件名本身。所以,我們的寫法是sys.argv[1:]

options是一個字符串,描述了需要解析哪些參數。如果一個參數,不需要跟變量,比如-h,那么直接使用參數名即可。如果一個參數需要傳入變量,則在后面加:,比如n:。所以本案例中hn:w:的意思是,我們有三個參數,分別是-h-n-w,其中-h無需傳入變量,而-n-w需要傳入變量。

long_options是一個字符串數組,也表示需要解析哪些參數。long_options是相對options而言的,我們在linux中,經常會看到一個命令的參數有多種寫法,最常見的就是幫助參數,它有兩種寫法:-h--help。前一種是就是我們的options,而后一種就是long_options

假如我們有一個--help,那么在long_options中就是['help']。如果一個參數需要傳入參數,比如--name 'Good',那么在long_options中就是['name='],是的,就是多一個=

getopt.getopt返回一個元組(opts, args),其中opts就是我們解析出來的參數,而args則是剩余沒有解析的參數。opts是元組數組,每個元組,相當於key-value。key就是我們的參數名,而value就是參數的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM