提问人:p1unge 提问时间:9/26/2023 更新时间:9/26/2023 访问量:50
在 Python 笔记本中为变量分配异常的正确方法是什么?
What is the correct way to assign an exception to a variable in a Python notebook?
问:
我正在使用一个笔记本,该笔记本使用以下语法来设置变量,以便稍后在代码中引发异常:
data_format = raise NotImplementedError("Select a data format for your kaggle entry! See docstring of 'assemble_predictors_predictands' for description of data_format.")
但 VS Code 在运行笔记本时会引发此错误:
data_format = raise NotImplementedError("Select a data format for your kaggle entry! See docstring of 'assemble_predictors_predictands' for description of data_format.")
^ SyntaxError: invalid syntax`
将变量设置为等于异常的正确方法是什么?
答:
3赞
jsbueno
9/26/2023
#1
“加薪”是一个陈述。尝试为变量分配一个“raise”语句,然后只提到该变量是一个指标,您应该学习更多 Python 语法、命令式编程和函数
如果你想尝试在不退后一步的情况下继续前进,无论如何都要检查这些概念,你可以把它写成一个函数
def data_format():
raise NotImplementedError(...)
并像函数一样调用它。
只是为了保持答案完整:你也可以为一个变量分配一个 Exception 实例 - 但你需要在你希望异常发生的时候使用“raise”语句,而不仅仅是提及,或者尝试使用它:
data_format = NotImplementedError(...)
...
raise data_format
但是,您真的不应该这样做,因为如果您最终两次引发相同的异常对象,您将得到混乱的回溯。在引发异常时构造异常不太容易出错。
评论
0赞
p1unge
9/26/2023
谢谢,是的,我同意这不是最好的语法。这不是我的代码,只是想让它运行。你知道为什么 VS Code 会认为它是无效的语法吗?
1赞
user2357112
9/26/2023
@p1unge:因为它完全无效。它在任何 Python 版本中都从未有效。如果发现试图将语句分配给变量的代码,则发现垃圾代码已损坏。raise
1赞
p1unge
9/26/2023
好的,太好了,这就是我所期待的。我真的不明白原作者在这里想做什么。
评论
a = b
b
NotImplementedError