擅长:python、mysql、java
<p>这还不错,但您可能会发现在参数解析期间解析它更干净。例如,在<code>argparse</code>中,可以使用自定义的<em>类型</em>:</p>
<pre><code>import argparse
def kvs_string(kvs):
if not kvs:
return [] # Since str.split will return "['']"
return [tuple(kv.split(':')) for kv in kvs.split(",")]
parser = argparse.ArgumentParser()
parser.add_argument(' kvs', type=kvs_string)
for args in [], [' kvs', ''], [' kvs', 'k1:v1,k2:v2,k3:v3']:
print(parser.parse_args(args))
</code></pre>
<p>输出:</p>
<pre><code>Namespace(kvs=None)
Namespace(kvs=[])
Namespace(kvs=[('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
</code></pre>