インポートするモジュールを取得しようとしていますが、特定のクラスのオブジェクトが呼び出された場合のみです。たとえば:Pythonモジュールを1つのクラスにインポートする
class One(object):
try:
import OneHelper
except ImportError:
pass
def __init__(self):
# this function doesn't use OneHelper
...
def blah(self):
# this function does
OneHelper.blah()
これはOne.blah()
関数が呼び出されたときNameError: global name 'OneHelper' is not defined
の原因となります。今まで私が見つけた唯一のことは、モジュールを実際の関数にインポートすることです。だから、:
class One(object):
def __init__(self):
# this function doesn't use OneHelper
...
def blah(self):
try:
import OneHelper
except ImportError:
pass
# this function does
OneHelper.blah()
しかし、私は、私はそれがクラス全体が利用できるようにしたい、私はそれを使用する各機能モジュールをインポートする必要がありますする必要はありませんが、のみのインスタンスであればそのクラスはインスタンス化されます。私が十分に明確でない場合はお詫び...
インスタンス化されたクラスをインポートし、他の関数内から関数を呼び出すだけの関数を作成してみることもできます。おそらく小さな回避策。 –