
215
6.3 名前空間とスコープ
>>> import sys
>>> vars(sys.stdout)
{'mode': 'w'}
dir([
object
])
引数を省略した場合は、実行中ローカル名前空間の、名前のリストを返します。
引数を指定した場合は、オブジェクトの属性名のリストを返します。
dir()
は、
vars()
と違っ
て、名前空間辞書を持たないオブジェクトの属性リストでも取得できます。
パラメタ
object
−
属性名のリストを取得するオブジェクトを指定します。
>>> import sys
>>> dir(sys.stdout)
[..., 'buffer', 'close', 'closed', 'detach', ...]
6.3.5
文字列の
intern
sys.intern()
関数は、名前空間の検索を高速化するための仕組みで、
Python
スクリプトで書く
と、次のような処理を行います。
_global_intern_map = {}
def intern(s):
if s in _global_intern_map:
return _global_intern_map[s]
else:
_global_intern_map[s] = s
s.interned = True
return s
引数として指定された値の文字列が辞書に登録済みなら、辞書に登録済みの文字列を返し、登録
済みでなければ、辞書に登録してその文字列を返します。
次のように、
2
つの文字列オブジェクト
A
と
B
があると、
A
と
B
はどちらも ...