如何在python中定义类?

Jef*_*ing 1 python

我正在尝试在Python中定义一个类并在bpython中使用它,但是我发现的所有示例都没有成功运行,我无法弄清楚原因.

在fubar.py中:

class Fubar:
   def fubar():
      print 'fubar'
Run Code Online (Sandbox Code Playgroud)

在bpython中:

>>> import fubar
>>> Fubar()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'Fubar' is not defined
Run Code Online (Sandbox Code Playgroud)

为什么选择bpython?因为它支持历史记录和制表符完成OOB.

我发现的每个python类定义的例子看起来都像我使用过的变种,这就是为什么我不明白为什么Fubar()未定义的原因.想法,评论?

Python 2.6.5(我不会选择使用的Python版本)bpython 0.9.5.2

我来自Ruby背景,如果这有助于解释任何人的困惑.

iCo*_*dez 7

您当前的代码正在导入包含该类的模块 .但是,Python并没有隐含地知道这一点.相反,你必须明确告诉它在哪里.fubarFubarFubar

为此,请将代码设为:

fubar.Fubar()
Run Code Online (Sandbox Code Playgroud)

或者,将import-statement更改为:

from fubar import Fubar
Fubar()  # This will now work
Run Code Online (Sandbox Code Playgroud)

这是关于导入的参考.