在Python的模块中定义和使用类

时间:2013-01-14 21:36:11

标签: python class module

我在模块中有模块Test.py和类测试。这是代码:

class test:

    SIZE = 100;
    tot = 0;

    def __init__(self, int1, int2):
        tot = int1 + int2;

    def getTot(self):
        return tot;

    def printIntegers(self):
        for i in range(0, 10):
            print(i);

现在,我在翻译处尝试:

>>> import Test
>>> t = test(1, 2);

我收到以下错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    t = test(1, 2);
NameError: name 'test' is not defined

我哪里出错了?

3 个答案:

答案 0 :(得分:6)

您必须像这样访问该类:

Test.test

如果您想要像之前那样访问该类,您有两种选择:

from Test import *

这会从模块中导入所有内容。但是,不建议这样做,因为模块中的某些内容可能会在没有意识到的情况下覆盖内置函数。

你也可以这样做:

from Test import test

这更安全,因为你知道你覆盖了哪些名字,假设你实际上覆盖了任何东西。

答案 1 :(得分:1)

@larsmans和@Votatility已经回答了你的问题,但是因为没有人提到你是violating Python standards with your naming convention,所以我正在讨论。

模块应该全部小写,由下划线(可选)分隔,而类应该是驼峰式的。那么,你应该拥有的是:

test.py:

class Test(object):
    pass

other.py

from test import Test
# or 
import test
inst = test.Test()

答案 2 :(得分:0)

执行import Test后,您可以Test.test访问该课程。如果您想以test的身份访问它,请执行from Test import test