我在模块中有模块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
我哪里出错了?
答案 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
。