.pycをロードする仕組み
どうでも良いんですがコンパイルした?Pythonのファイルの.pycをロードするような仕組みがある模様で
# -*- coding: utf-8 -*-
class Hoge(object):
def __init__(self):
print self
def say(self):
print u"ほげ"
class Fuga(Hoge):
pass
みたいなクラスを定義してて、でこれをimportしたりすると.pycっていうファイルとしてコンパイルされる仕組みがあると思うのですが、でこの.pycを読み込んでクラスを利用するっていう事
import marshal
#from hoge import Hoge
context = {}
bytecode = open("hoge.pyc", "r").read()
code = marshal.loads(bytecode[8:])
eval(code, globals(), context)
for key in context.keys():
print key
try:
o = context[key]()
o.say()
except TypeError, e:
print e
print
結果が
Fuga <__main__.Fuga object at 0x8f8498c> ほげ Hoge <__main__.Hoge object at 0x8f849ec> ほげ
っていう感じになる。