【发布时间】:2020-07-21 01:30:37
【问题描述】:
考虑以下简化示例:
def f(string, offset=0):
print(string[offset:] if isinstance(offset, int) else string[f.__defaults__[0]:])
f('Hello', 'two')
虽然f.__defaults__ 返回的元组可以按各自的顺序访问所有默认参数值(即按位置),但我想知道是否有办法按名称访问它们/identifier 来自函数内部的参数(此处为:'offset')...
【问题讨论】:
-
如果你在这里控制代码,你可以使用你设置的默认值:
... else string[0:] -
@schwobaseggl 我认为这里的想法是应用DRY 原则。想象一下,必须在代码中搜索和修改 10 个使用默认值
offset的位置,而稍后如果您在每个位置硬编码0,则必须更改默认值。 -
@blhsing 这是有道理的。另一方面:这将由其他代码调用。传递错误类型的参数不是我会沉默的错误,而是想知道以便我可以修复它。
标签: python function default-value