0

モジュール内にクラス test を持つモジュール 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

前に試したようにクラスにアクセスしたい場合は、2 つのオプションがあります。

from Test import *

これにより、モジュールからすべてがインポートされます。ただし、モジュールの何かがビルトインを知らないうちに上書きする可能性があるため、お勧めしません。

次のこともできます。

from Test import test

これは、実際に何かを上書きしていると仮定して、上書きしている名前を知っているため、はるかに安全です。

于 2013-01-14T21:37:24.837 に答える
1

あなたの質問は@larsmansと@Votatilityによってすでに回答されていますが、命名規則でPython標準に違反していると誰も言及していないので、私は声を上げています。

モジュールはすべて小文字でアンダースコア (オプション) で区切る必要がありますが、クラスはキャメルケースにする必要があります。したがって、次のものが必要です。

test.py:

class Test(object):
    pass

other.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 に答える