>>hi None myFun(b-6ren">
gpt4 book ai didi

python - 强制函数调用者决定使用哪个默认值

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:15 25 4
gpt4 key购买 nike

假设我有以下功能:

def myFun(a=None, b=None):
print a, b

现在我调用函数:

myFun("hi") # Case 1
>>>hi None

myFun(b="hi") # Case 2
>>>None hi

myFun(a="hi") # Case 3
>>>hi None

如果函数调用者没有决定值“hi”分配给哪个变量,有没有办法抛出异常?这意味着我想在第一种情况下有异常(exception),但在第二和第三种情况下没有。我使用 python 2.7。

最佳答案

在 Python3 中你可以指定 keyword-only arguments :

def myFun(*, a=None, b=None):
print(a, b)

myFun('hi')

加注

TypeError: myFun() takes 0 positional arguments but 1 was given

在 Python2 中,作为 Ricardo Silveira points out您可以使用 **kwargs 强制所有参数成为关键字参数。

def myFun(**kwargs):
a, b = kwargs.get('a'), kwargs.get('b')
print(a, b)

myFun('hi')
# TypeError: myFun() takes exactly 0 arguments (1 given)

关于python - 强制函数调用者决定使用哪个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37987702/

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