【发布时间】:2021-01-19 19:29:36
【问题描述】:
我正在尝试使用我的同事之前已经成功运行过的代码。
但是,当我尝试复制这种情况时,我得到了一个错误。 情况如下:
类和函数定义为:
Class X:
def f1(self, params)
...
def f2(self, params)
...
Class Y(X):
def f3(self, params..)
...
def G(self, params):
... so on
所有这些都保存在笔记本的“classes.py”文件下。
因此,从我的 jupyter 笔记本中,我尝试将函数 G() 调用为:
import classes
X.G(params)
现在我收到如下错误:
" name 'X' is not defined "
我也试过这样打电话:Y.G(params)
并得到类似的错误,如名称 Y 未定义。
我相信,代码没有错误,因为它之前已经运行过。
谁能解释这里可能出现的问题。
另外,我不明白Class Y(X) 的行定义。
我的假设是,Y 类是主要 X 类的子类。
但是,无论如何,一些见解是有帮助的。
谢谢
【问题讨论】:
-
你为什么在
X中定义f()两次? -
如果你导入类,那么 X 可以作为
classes.X -
用“classes.X”替换“X”来解决这个问题。
-
更好的做法是去
from classes import X, Y -
@MattDMo f() 应该是 f1(), f2() 等等...我会尝试这些方法。谢谢
标签: python class jupyter-notebook python-class