所以,我有一个python脚本,用于解析和绘制文本文件中的数据。使用argparse模块完成参数处理。问题是,一些参数是可选的,例如其中一个用于在图上添加文本注释。该参数通过** kwargs发送到绘图功能。我的问题是 - 处理这些可选参数的最pythonic方法是什么?这里有一些伪代码:
import time
import threading
import sys
def non_daemon():
print('Test non-daemon')
time.sleep(5)
#sys.exit() # is this necessary/encouraged?
t = threading.Thread(name='non-daemon', target=non_daemon)
t.start()
print("done")
如果默认情况下未指定选项,则分配无值。它会导致一些问题。什么是pythonic - 以某种方式检查some_function中的'选项'?或者也许在调用some_function之前解析参数?
答案 0 :(得分:3)
您只需提供一个明确的空列表作为默认列表。
parser.add_argument("-o", "--options", nargs="+", default=[])
答案 1 :(得分:1)
使用get
并设置默认值,如果在dict
def some_function(arguments, **kwargs):
something = kwargs.get('options', 'Not found')
return something
或if语句
if 'option' in kwargs:
pass # do something