gpt4 book ai didi

python - 部分:不允许覆盖给定的关键字参数

转载 作者:行者123 更新时间:2023-12-03 19:41:03 31 4
gpt4 key购买 nike

有没有办法禁止在部分中覆盖给定的关键字参数?假设我要创建函数 bar总是有 a设置为 1 .在以下代码中:

from functools import partial

def foo(a, b):
print(a)
print(b)

bar = partial(foo, a=1)
bar(b=3) # This is fine and prints 1, 3
bar(a=3, b=3) # This prints 3, 3
您可以愉快地调用 bar并设置 a3 .是否可以创建 barfoo并确保调用 bar(a=3, b=3)要么引发错误,要么默默地忽略 a=3并继续使用 a=1如在部分?

最佳答案

你真的需要使用部分吗?
您通常可以使用更少的参数定义一个新的函数 bar 。
像:

def bar(a):
b = 1
foo(a, b)
这将给出错误。
或者像:
def bar(a, b=1):
b = 1 #ignored provided b
foo(a, b)
这将忽略 b。
编辑:如果你想把这些放在一起,请使用 lambda:
喜欢: bar = lambda a:foo(a,b=1)bar = lambda a,b=1:foo(a,b=1)

关于python - 部分:不允许覆盖给定的关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64481847/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com