Take these examples:
>>>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
If raise is a keyword, why is it invoked like a function?
>Solution :
Putting parentheses around something just makes it a parenthesized value; it does not magically make it a function call.
1 is the same as (1), therefore return 1 is the same as return (1).
But it’s not a function call.