私が持っているこのようなビットに見えるa.py
と呼ばれる私のコードでモジュール:は、モジュールにインポートされたモジュールへのアクセスを拒否する
import sqlite3
from sqlite3 import *
"""The point of importing twice in a different way is to
have a.py imported by someone and have all the sqlite3 functions (with some overriden by a.py)
but a.py still needs access to the source sqlite3 functions that he overrides"""
def connect(database): #overriding sqlite3's connect()
print "It worked!"
return sqlite3.connect(database)
とb.py
と呼ばれるファイル:
import a
a.sqlite3.connect("data.db")
私がしたいのa.py
で元の(オーバーライドされていない)機能にアクセスできるはずがないので、b.py
のコードを無効にするにはどうすればよいですか?
名前* sqlite3 *はモジュール* a *を介してアクセスできないはずですか?その場合、これを見てください:http://stackoverflow.com/questions/44834/can-someone-explain-all-in-python。あなたが求めているのは正確ではありませんが、少なくとも輸入*でそれらを隠しています。 –
なぜそれをやりたいですか? – jonrsharpe
@jonrsharpe私のプロジェクトでは、ユーザはPythonでコードを書くことができますが、モジュールにアクセスすることはできませんが、私が必要とするモジュールはすべてうまくいきますが、唯一の問題は彼が組み込みのモジュールにアクセスできることです(私は彼も欲しくない)私のモジュールを介して。 – Jim