35

本当に紛らわしいエラーに遭遇したようです。クラスを含む .py ファイルをインポートしても、Python はそのクラスが実際には存在しないと主張します。

testmodule.py のクラス定義:

class Greeter:
    def __init__(self, arg1=None):
        self.text = arg1

    def say_hi(self):
        return self.text

main.py:

#!/usr/bin/python
import testmodule

sayinghi = Greeter("hello world!")
print(sayinghi.say_hi())

インポートが正常に機能していないという理論があります。これを正しく行うにはどうすればよいですか?

4

2 に答える 2

39

完全修飾名を使用します。

sayinghi = testmodule.Greeter("hello world!")

import名前空間に持ち込む別の形式がありGreeterます。

from testmodule import Greeter
于 2012-05-23T14:48:49.577 に答える
24
import testmodule
# change to
from testmodule import Greeter

また

import testmodule
sayinghi = Greeter("hello world!")
# change to
import testmodule
sayinghi = testmodule.Greeter("hello world!")

モジュール/パッケージをインポートしましたが、その中のクラスを参照する必要があります。

代わりにこれを行うこともできます

from testmodule import *

ただし、名前空間の汚染に注意してください

于 2012-05-23T14:52:05.170 に答える