あいまいなタイトルを失礼します。誰か提案があれば教えてください!また、より適切なタグでタグを付け直してください。
問題
インポートされたクラスのインスタンスが、インポーターのスコープ(グローバル、ローカル)内のものを表示できるようにしたい。ここで機能している正確なメカニズムがわからないため、単語よりもスニペットを使用して説明することができます。
## File 1
def f1(): print "go f1!"
class C1(object):
def do_eval(self,x): # maybe this should be do_evil, given what happens
print "evaling"
eval(x)
eval(x,globals(),locals())
次に、反復セッションからこのコードを実行します。NameErrors
## interactive
class C2(object):
def do_eval(self,x): # maybe this should be do_evil, given what happens
print "evaling"
eval(x)
eval(x,globals(),locals())
def f2():
print "go f2!"
from file1 import C1
import file1
C1().do_eval('file1.f1()')
C1().do_eval('f1()')
C1().do_eval('f2()')
file1.C1().do_eval('file1.f1()')
file1.C1().do_eval('f1()')
file1.C1().do_eval('f2()')
C2().do_eval('f2()')
C2().do_eval('file1.f1()')
C2().do_eval('f1()')
この種のタスクに共通のイディオム/パターンはありますか?私は間違った木を完全に吠えていますか?