2010年05月05日

名前空間のつまらないネタ


1. アンダーバーで始まるけど見える・・・
# module1.py

def func1():
print "this is func1."

# アンダーバーで始まる名前の変数、関数、クラスは
# 外部からは見えないけど・・・
def _func2():
print "this is _func2."

# __all__ に定義すればモジュールの外から見える。
#  特に意味も無いが。。。

__all__ = ['func1', '_func2']



2. グローバル変数を無理やり定義しちゃう
__builtins__.func = lambda x, y: x * y
__builtins__.foo = 'something'

print foo
print func(5, 8)

どこでも利用可能になる。
これは一般的に当然お勧めしないやり方。

どうしてもグローバル変数を使いたいのなら、
# my_globals.py 
foo = 'something'
============
import my_globals
print my_globals.foo

モジュールを使用するのが、まだクリーンな方法。
 
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。