0

我有模块 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

我哪里做错了?

4

3 回答 3

6

您必须像这样访问该类:

Test.test

如果您想像以前一样访问该课程,您有两种选择:

from Test import *

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

你也可以这样做:

from Test import test

这更安全,因为您知道要覆盖哪些名称,假设您实际上正在覆盖任何东西。

于 2013-01-14T21:37:24.837 回答
1

@larsmans 和@Votatility 已经回答了您的问题,但我正在插话,因为没有人提到您的命名约定违反了 Python 标准

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

测试.py:

class Test(object):
    pass

其他.py

from test import Test
# or 
import test
inst = test.Test()
于 2013-01-14T21:55:51.613 回答
0

当你这样做时import Test,你可以以Test.test. 如果您想以 . 身份访问它test,请执行from Test import test.

于 2013-01-14T21:37:45.920 回答