【发布时间】:2022-12-17 12:12:30
【问题描述】:
我在 Jupyter 中运行以下代码:
from typing import List
class dummy:
def __init__(self, dum: List =[]):
self.dum = dum
@property
def dum(self) -> List:
return self.dum
@dum.setter
def dum(self, value: List) -> None:
self.dum = value
当我运行以下命令时:
dummy(dum=[1,2,3])
内核在没有告诉我很多可能的错误的情况下就死了。到底是怎么回事?
【问题讨论】:
-
您不应该将类的方法和属性命名为相同的名称。
dum同时是一个方法和一个属性,所以dummy().dum很容易混淆。重命名属性应该可以解决问题。 -
内核死了有没有告诉你任何事情?如果是这样,发帖会很有帮助。未来的搜索者更有可能在其中找到这个问题。
-
从命令行运行失败的脚本以查看会发生什么会很有用。在这里你会得到
self.dum = value,RecursionError: maximum recursion depth exceeded。
标签: python jupyter-lab