【发布时间】:2022-01-10 03:20:12
【问题描述】:
举个例子:
>>> raise(BaseException())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
BaseException
>>> raise BaseException()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
BaseException
回忆一下这句格言:
There should be one-- and preferably only one --obvious way to do it.
如果raise 是关键字,为什么在语法上允许将其视为像函数一样被调用?
还有一些其他关键字允许附加括号。 是不是很混乱?
【问题讨论】:
-
您只需将
BaseException放在括号中,这没有任何作用——它只是允许您跳过raise之后的空格。您可以对if(True):或其他方式执行相同操作。请不要。 -
是的,
raise确实是一个关键字。您可以通过阅读文档来回答这个问题。它不是“像函数一样被调用”,并且在那里写括号不会使其如此。您知道raise是关键字的方式是您也可以 编写语句 不带 括号。实际上,您已经在示例中这样做了。投票结束是不可重现的,因为这是一个要求对实际不存在的事物进行解释的问题。 -
考虑一下:我可以写
-(3)并回复-3。一元减函数吗?没有。
标签: python function object oop exception