2016-05-31 12 views
-4

に定義されていない私はNameError:グローバル名「X」は

NameError: global name 'Ontologia' is not defined 

にOntologiaがontologia.py上で定義されており、私も

import ontologia 

を使用。これは私のラインであるクラスを取得しています「問題を取得mは

onto = Ontologia() 

ontologia.pyの完全なコードはここにある:

class Ontologia(object): 

def __init__(self, name, key, left=None, right=None): 
    self.name = name 
    self.key = key 
    self.left = left 
    self.right = right 
+2

てみいずれか(両方ではない) '輸入Ontologia' ontologiaから、または' = ontologia.Ontologia(へ) '。 – wflynny

+1

あなたの答えを答えに入れてください。そうすればOPはそれを受け入れることができます。私はそれに投票することができ、世界はこの質問が答えられたことを知ることができます。 –

+0

ありがとうございます、それは動作します。 モジュール全体をインポートする方法はありますか? –

答えて

3

Pythonのimportステートメントは、たとえばJavaのimportステートメントとは少し異なる動作をします。

すべてのパブリック名をモジュールからインポートすることは可能です。あなたが興味を持っているならば、documentation of the import statementは、「公開名」が何であるかを正確に定義します。例:一般的に

from ontologia import * 
onto = Ontologia() # name 'Ontologia' is defined now 

どのimport文で定義された名前は明らかではないので、このフォームを使用することは推奨されません。 Pythonプログラマは明示的に好きです。

ベターです:

from ontologia import Ontologia 
onto = Ontologia() # name 'Ontologia' is defined now 

または:

import ontologia 
onto = ontologia.Ontologia() 
関連する問題