在 .py 文件中我有以下内容:
class avgbox:
def __init__(self,t,n,a):
self.t = t
self.n = n
self.a = a
def add(x):
self.t += x
self.n += 1
self.a = t/n
现在,当我在从 ubuntu 命令行运行的交互式 python shell 中执行 from file.py import *
时,它没有显示任何错误。然后当 a = avgbox(0,0,0)
时,它说 NameError: name 'avgbox' is not defined
。有任何想法吗?我在这里做错了什么?谢谢!
最佳答案
我将您的代码复制并粘贴到名为“file.py”的文件中。然后我做了以下事情:
from file import *
avgbox(1, 2, 3)
成功了。也许你的错误是你在执行 from file.py import *
而你应该执行 from file import *
请记住,当 Python 搜索模块名称时,它会自动附加.py
到模块的名称,如果它正在当前目录中查找 Python 文件。当然,您也可以使用 from
语法在包内搜索,但那是另一回事。
关于python - 在交互式 Python Shell 中实例化一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18771874/