成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

盧氏網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),盧氏網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為盧氏上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的盧氏做網(wǎng)站的公司定做!

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)開(kāi)頭,中間不要使用數(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ú)法被命令行捕獲。另外,如果代碼中沒(méi)有parser.parse_args(),命令行就不能傳參。

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

Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方

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

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

Python項(xiàng)目中定義命令行參數(shù)時(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 np
import argparse 
 
parser = argparse.ArgumentParser() 
parser.add_argument('--array', type=np.array, default=np.array([1,2])) 
args = parser.parse_args() 

print(args) 
array = args.array
print(type(array))
print(array)
print(array + 1)

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

Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方

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

Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方

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

看完上述內(nèi)容,你們對(duì)Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享題目:Python項(xiàng)目中定義命令行參數(shù)時(shí)需要注意哪些地方-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article22/dssjcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、關(guān)鍵詞優(yōu)化靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)