如果我有这个功能
def my_function(a,b,c):
Run Code Online (Sandbox Code Playgroud)
当用户调用该函数时,他们省略最后一个参数
print(my_function(a,b))
Run Code Online (Sandbox Code Playgroud)
我应该提出什么例外?
正如其他人提到的,TypeError如果使用错误数量的静态声明参数调用函数,Python 将引发 a 。自 Python 以来,似乎没有实际的理由来覆盖此行为以引发您自己的自定义错误消息:
TypeError: f() takes 2 positional arguments but 3 were given\nRun Code Online (Sandbox Code Playgroud)\n\n很有说服力。
\n\n但是,如果您想执行此操作,并且可以选择允许第二个参数,则可以使用*args.
def my_function(a, *args):\n b = None\n if len(args) > 1:\n raise TypeError("More than 2 arguments not allowed.")\n elif args:\n b = args[0]\n\n # do something with a and possibly b.\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:考虑到 OP\xe2\x80\x99s 注释中的新附加详细信息,建议默认关键字参数的另一个答案更合适。
\n| 归档时间: |
|
| 查看次数: |
6819 次 |
| 最近记录: |