有没有优雅的解决方案可以将shell参数映射到Python函数参数?

2024-05-14 17:01:46 发布

您现在位置:Python中文网/ 问答频道 /正文

假设有这样一个Python函数:

def frobnicate(foo, bar, buzz, *, quux, quuz=42, corge=None):
    pass

我有一个转换器,可以用这种方式从shell调用这个函数:

$ ./frobnicate.py 'I am foo' 'This is bar' --quux="Quux here" --buzz="Buzz value"

因此,这些规则类似于Python调用语法约定——首先是位置参数,然后关键字参数可以按任意顺序跟随

问题是-如何允许以双破折号(--)开头的位置参数?例如,如果我想使foo等于--nonsense=1234,我怎么能不强制foo始终指定为关键字参数呢?有没有什么好的方法可以做到这一点而不打破这个想法


Tags: 函数none参数foodef方式barpass

热门问题