【发布时间】:2015-08-02 18:22:54
【问题描述】:
我有这样的功能:
def func(foo, bar, nin=None, nout=None):
if not nin:
nin = bar
if not nout:
nout = bar
return foo * nin / nout
它接受两个可选参数,如果它们没有传入,我需要将它们映射到另一个强制参数。但这是pythonic的方式吗?还有其他方法可以获取支票并设置nin 和nout?
【问题讨论】:
-
是的,这是 Pythonic 的方式,除了你应该检查
if nin is not None:而不是if not nin:以避免错误-y 对象的问题None以外的问题. -
看起来不错,虽然我会使用
if nin is None: ...等。 -
你也可以使用 **kwargs 和 .get,
nin, nout = kwargs.get("nin", bar),kwargs.get("nout", foo)
标签: python function parameters