我正在尝试在Python中定义一个类并在bpython中使用它,但我发现的所有示例都没有成功运行,我无法弄清楚原因。
在fubar.py中:
class Fubar:
def fubar():
print 'fubar'
在bpython中:
>>> import fubar
>>> Fubar()
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'Fubar' is not defined
为什么选择bpython?因为它支持历史记录和制表符完成OOB。
我发现的每个python类定义的例子看起来都像我使用过的变种,这就是为什么我不明白为什么Fubar()未定义。思考,评论?
Python 2.6.5(我不会选择正在使用的Python版本) bpython 0.9.5.2
我来自Ruby背景,如果这有助于解释任何人的困惑。
答案 0 :(得分:7)
您当前的代码正在导入包含类fubar
的模块 Fubar
。但是,Python并没有隐含地知道这一点。相反,您必须明确告诉它Fubar
的位置。
为此,请将代码设为:
fubar.Fubar()
或者,将您的import语句更改为:
from fubar import Fubar
Fubar() # This will now work
以下是importing的参考资料。