色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python命令行參數(shù)定義及需要注意的地方

瀏覽:30日期:2022-07-03 16:01:33

在命令行中運(yùn)行python代碼是很常見的,下面介紹如何定義命令后面跟的參數(shù)。

1 常規(guī)用法

Python代碼中主要使用下面幾行代碼來(lái)定義并獲取需要在命令行中賦值的參數(shù):

import argparse parser = argparse.ArgumentParser('Description.') # ————1————parser.add_argument(’--test1’, type=str, default='1', help='Test1 help.') # ————2————parser.add_argument(’--test2’, type=float, default=2.1, help='Test2 help.') # ————2————args = parser.parse_args() # ————3————print(args)test1, test2 = args.test1, args.test2 # ————4———— print(type(test1), test1, test1 + ' add test') print(type(test2), test2, test2 + 100)

注釋:

1、獲取外部參數(shù)對(duì)象實(shí)例。可以傳入字符串來(lái)描述總體的外部參數(shù)。

2、定義外部參數(shù),可以多次調(diào)用來(lái)定義多個(gè)外部參數(shù)。函數(shù)的第一個(gè)參數(shù)是外部參數(shù)的名稱,建議以兩個(gè)減號(hào)開頭,中間不要使用數(shù)字字母下劃線以外的符號(hào),否則容易出錯(cuò)。type是你希望外部參數(shù)傳入后轉(zhuǎn)換的類型,比如--test1定義為str,即使命令行傳參不添加引號(hào),函數(shù)也將它轉(zhuǎn)換為字符串(當(dāng)然不加引號(hào)傳字符串就不能用空格了)。而--test2是float,即使命令行傳參帶了引號(hào),只要能轉(zhuǎn)換為數(shù)字,函數(shù)都能轉(zhuǎn)換為float類型。default是外部參數(shù)的默認(rèn)值。如果命令行不對(duì)外部參數(shù)賦值而使用默認(rèn)值,函數(shù)不會(huì)對(duì)你定義的默認(rèn)值進(jìn)行type上的轉(zhuǎn)換,所以default最好直接定義為type指定的類型(比如--test1的default定義為'1'而不是1)。help傳入對(duì)當(dāng)前外部參數(shù)的描述,命令行中使用--help輸出的就是這個(gè)。

3、分析獲取的外部參數(shù)。傳出的是一個(gè)命名空間,類似于字典,但使用屬性的方式而不是key索引來(lái)獲取命名對(duì)應(yīng)的外部參數(shù)值。

4、以獲取屬性的方式獲取外部參數(shù)。

需要注意的是,外部參數(shù)的定義必須寫在獲取外部參數(shù)之前。也就是說(shuō),parser.add_argument()要寫在parser.parse_args()之前,否則外部參數(shù)無(wú)法被命令行捕獲。另外,如果代碼中沒有parser.parse_args(),命令行就不能傳參。

用命令行執(zhí)行以上代碼,命令與輸出如下(以上代碼保存為test.py):

Python命令行參數(shù)定義及需要注意的地方

可以看出,故意以數(shù)字和字符串的方式分別對(duì)字符串和float類型的外部參數(shù)賦值,函數(shù)都能正確地轉(zhuǎn)換并正確地參與運(yùn)算。

使用默認(rèn)值時(shí)輸出如下:

Python命令行參數(shù)定義及需要注意的地方

2 注意事項(xiàng)

通過(guò)以上的實(shí)驗(yàn),argparse庫(kù)似乎能將外部參數(shù)正確轉(zhuǎn)換為各種類型,只要能轉(zhuǎn)換。下面來(lái)實(shí)驗(yàn)是否能傳入一個(gè)numpy數(shù)組。代碼如下:

import numpy as npimport argparse parser = argparse.ArgumentParser() parser.add_argument(’--array’, type=np.array, default=np.array([1,2])) args = parser.parse_args() print(args) array = args.arrayprint(type(array))print(array)print(array + 1)

當(dāng)使用默認(rèn)值時(shí):

Python命令行參數(shù)定義及需要注意的地方

運(yùn)行正確,但當(dāng)我們意圖傳入外部參數(shù)時(shí):

Python命令行參數(shù)定義及需要注意的地方

盡管傳入的[1,2]被轉(zhuǎn)換為numpy.ndarray類型,它卻并不能參與運(yùn)算。所以,并不是所有的類型都能在命令行中傳入的。

以上就是Python命令行參數(shù)定義及需要注意的地方的詳細(xì)內(nèi)容,更多關(guān)于Python命令行參數(shù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久爽久久爽久久免费观看 | 高清一区在线 | 久草视频播放 | 国产日韩精品一区二区在线观看 | 自拍第一页 | 日韩毛片高清免费 | 特黄aa级毛片免费视频播放 | 九九视频在线观看视频6 | 九九色网站 | 大尺度福利视频在线观看网址 | 日韩欧美国产视频 | 婷婷丁香花麻豆 | 欧美一级α片毛片免费观看 | 亚洲va精品中文字幕动漫 | 国产日韩一区二区三区在线观看 | 美女扒开腿让男生桶爽网站 | 日本免费毛片 | 黄色大秀视频 | 欧美日韩久久 | 欧美亚洲中日韩中文字幕在线 | 国产美女做爰免费视频软件 | 亚洲黄色三级网站 | 亚洲第一网色综合久久 | 北岛玲亚洲一区在线观看 | 久久综合九色综合欧洲色 | 久久国产一级毛片一区二区 | 午夜三级a三级三点在线观看 | 欧美成人看片黄a免费看 | 最新欧美一级视频 | 欧美在线精品一区二区三区 | 免费观看一级特黄欧美大片 | 欧美日韩精品乱国产538 | 欧美视频久久 | 久久女厕一次看个够 | 欧美一区二区三区视频 | 怡红院在线视频全部观看 | 国产高清视频免费观看 | 午夜精品免费 | 成人午夜大片免费看爽爽爽 | 国产91精品久久久久999 | 九九欧美 |