Duk*_*e79 6 python python-fire
我有这样的功能 -
def my_func(my_list_arg=["one", "two"]):
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用python-fire.
我尝试了几种方法 -
尝试 1:
fire_runner.py my_func [one, two]
Run Code Online (Sandbox Code Playgroud)
导致两个单独的参数"[one"和"two]"。
尝试 2:
fire_runner.py my_func ["one", "two"]
Run Code Online (Sandbox Code Playgroud)
具有相同的结果。
尝试 3:
fire_runner.py my_func [\"one\", \"two\"]
Run Code Online (Sandbox Code Playgroud)
同样的结果。
Cod*_*ice 13
您的列表将首先由命令行 shell 解析。这意味着您需要将其强制为单个参数。有很多方法可以做到这一点:
没有空间: [one,two]
逃离空间: [one,\ two]
行情:"[one, two]"。
请注意,您可以使用以下语法修改函数以获取参数列表:
def my_func(*args):
Run Code Online (Sandbox Code Playgroud)
args这里的名字是约定俗成的,但它只是一个变量名,所以它可以是任何东西。这将允许您将函数调用为
fire_runner.py my_func one two
Run Code Online (Sandbox Code Playgroud)
添加此答案只是为了特殊情况。
鉴于你的功能是这样的:
def my_func(dates: List[str] = []):
...
Run Code Online (Sandbox Code Playgroud)
如果您需要从 CLI 发送日期列表(或数字和字符的任意组合),则以下操作将不起作用。
fire_runner.py my_func --dates 2021-09-20,
fire_runner.py my_func --dates "[2021-09-20]"
fire_runner.py my_func --dates [2021-09-20]
Run Code Online (Sandbox Code Playgroud)
在上述所有情况下,日期将被读取为一个字符串而不是字符串列表。为了正确阅读字符串列表,您可以使用以下内容。
fire_runner.py my_func --dates "[\"2021-09-20\"]"
fire_runner.py my_func --dates "[\"2021-09-20\", \"2021-09-76\"]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |