Python类无法通过Terminal实例化

时间:2015-06-21 16:17:18

标签: python class

出于教育目的,我想展示如何在Python中使用类。

我的演示是转到终端,使用Vim创建一个新文件classy.py,然后在终端上运行Python。

我开始输入vi classy.py,使用i进入插入模式,然后输入:

# An example of a class
class Shape:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def area(self):
        return self.x * self.y
    def perimeter(self):
        return 2 * self.x + 2 * self.y
    def scaleSize(self,scale):
        self.x = self.x * scale
        self.y = self.y * scale

并保存。然后我通过终端输入Python2.7。我输入python,然后输入提示

>>> import classy             # import classy.py
>>> rectangle = Shape(10,10)  # create instance of the Shape class

终端输出错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Shape' is not defined

为什么会出现此错误?当然,实例化类rectangle = Shape(10,10)应该没有问题。

2 个答案:

答案 0 :(得分:2)

你做错了,要么你需要module.ClassName来访问该类,要么使用from <module> import <Class>

导入它

示例 -

>>> import classy       
>>> rectangle = classy.Shape(10,10)

或者

>>> from classy import Shape     
>>> rectangle = Shape(10,10)

答案 1 :(得分:0)

rectangle = classy.Shape(10,10)