定义一个类只能从ipython中运行

时间:2014-05-29 12:41:08

标签: python class

我在mypy文件夹中创建了一个课程:

class Shape:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def area(self)
        return self.x * self.y

如果我这样做:

import sys
sys.path.append('mypy')
import Shape
test = Shape(2,4)

我收到错误:

'module' object is not callable

如果我在ipython中定义类并调用它,一切正常。

1 个答案:

答案 0 :(得分:0)

在IPython中,提示符像单个模块一样工作,然后如果你定义一个类并尝试从中创建一个对象,就像在test = Shape(2,4)中一样,因为你处于类定义的同一个命名空间。当您导入模块Shape时,它也有一个名为Shape的已定义类,您必须为类定义提供完全限定名称,如:

import Shape
test = Shape.Shape(2,4)   # test = Module.Class()