Mac OS XでPython 2.6.1を使用しています。
2つのシンプルなPythonファイル(下記)がありますが、実行すると
python update_url.py
私はターミナルに乗ります:
Traceback (most recent call last):
File "update_urls.py", line 7, in <module>
main()
File "update_urls.py", line 4, in main
db = SqliteDBzz()
NameError: global name 'SqliteDBzz' is not defined
ファイルとクラスの名前を変えてみました。そのため、末尾にxとzがあります。 ;)
class SqliteDBzz:
connection = ''
curser = ''
def connect(self):
print "foo"
def find_or_create(self, table, column, value):
print "baar"
import sqlitedbx
def main():
db = SqliteDBzz()
db.connect
if __name__ == "__main__":
main()
あなたがする必要があります:
import sqlitedbx
def main():
db = sqlitedbx.SqliteDBzz()
db.connect()
if __name__ == "__main__":
main()
試してみる
from sqlitedbx import SqliteDBzz
名前空間のインポートはややクリーンです。インポートする2つの異なるモジュールがあり、どちらも同じメソッド/クラスであるとします。いくつかの悪いことが起こるかもしれません。私はそれが使用するのが通常良い習慣であるとあえて言うでしょう:
import module
以上
from module import function/class
これがPythonの仕組みです。これを試してみてください。
from sqlitedbx import SqliteDBzz
モジュールを囲むことなく名前を直接使用できるようにするか、モジュールをインポートして「sqlitedbx」を追加するだけです。あなたの関数、クラスなどに