日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python可选参数位置_每个位置参数的可选参数

發(fā)布時間:2025/3/15 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python可选参数位置_每个位置参数的可选参数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

下面是我整理的一個簡單的方法,可能是一個合理的起點(diǎn):import argparse

class PositionalAction(argparse.Action):

def __call__(self,parser,namespace,values,option_string=None):

lst = getattr(namespace,self.dest)

lst.append(values)

parser.last_positional_values = lst

all_positional = getattr(namespace,'all_positional',[])

all_positional.append(lst)

namespace.all_positional = all_positional

class AssociateAction(argparse.Action):

def __call__(self,parser,namespace,values,option_string=None):

try:

parser.last_positional_values.append(values)

except AttributeError:

pass

parser = argparse.ArgumentParser()

parser.add_argument('-o',action=AssociateAction,dest=argparse.SUPPRESS)

junk,unknown = parser.parse_known_args()

for i,_ in enumerate(unknown):

parser.add_argument('arg%d'%i,action=PositionalAction,default=[])

print parser.parse_args()

在這里,它正在發(fā)揮作用:

^{pr2}$

這個問題有一些挑戰(zhàn)。首先,要接受argparse不喜歡的任意數(shù)量的位置參數(shù)。argparse想預(yù)先知道會發(fā)生什么。解決方案是構(gòu)建一個解析器并解析命令行,但是告訴argparse只解析已知的參數(shù)(在本例中,非位置的-o參數(shù)都是靜默解析的,但是“位置”參數(shù)不會被解析)。parse_known_args非常適合這一點(diǎn),因?yàn)樗?namespace_of_parsed_stuff, uknown_args)的形式返回一個元組。現(xiàn)在我們知道了未知參數(shù),我們只需要為每個參數(shù)添加一個位置參數(shù),以使parse_args滿意。在

現(xiàn)在,自定義操作實(shí)際上在做什么?當(dāng)找到一個位置參數(shù)(在第二個過程中),我們得到默認(rèn)值(這是一個列表),并將值添加到該列表中(以后我將稱之為“值”列表)。然后,我們使用對“value”列表的引用修改解析器。我們還從名稱空間中獲得“所有位置”列表。如果它沒有這個屬性,我們只得到一個空列表。我們將“值”列表添加到“所有位置”列表中,并將其放回名稱空間。在

現(xiàn)在,當(dāng)我們碰到一個-o標(biāo)志時,我們查看解析器以獲得“value”列表,并將附加值添加到該列表中。我們可以在不接觸解析器的情況下做同樣的事情。。。(我們可以看一下namespace.all_positional[-1]它與parser.last_positional_values相同)。在

總結(jié)

以上是生活随笔為你收集整理的python可选参数位置_每个位置参数的可选参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。