提交 486b71f2 authored 作者: James Bergstra's avatar James Bergstra

revised Module.make

上级 46a7d4b8
...@@ -51,16 +51,17 @@ class Component(object): ...@@ -51,16 +51,17 @@ class Component(object):
def build(self, mode, memo): def build(self, mode, memo):
raise NotImplementedError raise NotImplementedError
def make(self, mode = 'FAST_RUN', init = None, **kwinit): def make_no_init(self, mode='FAST_COMPILE'):
memo = {} memo = {}
self.allocate(memo) self.allocate(memo)
rval = self.build(mode, memo) rval = self.build(mode, memo)
if init and kwinit: return rval
rval.initialize(init, **kwinit)
elif init: def make(self, *args, **kwargs):
rval.initialize(init) mode = kwargs.pop('mode', 'FAST_COMPILE')
elif kwinit: rval = self.make_no_init(mode)
rval.initialize(**kwinit) if hasattr(rval, 'initialize'):
rval.initialize(*args, **kwargs)
return rval return rval
def __repr__(self): def __repr__(self):
...@@ -532,7 +533,7 @@ class FancyModuleInstance(ModuleInstance): ...@@ -532,7 +533,7 @@ class FancyModuleInstance(ModuleInstance):
def __setattr__(self, attr, value): def __setattr__(self, attr, value):
try: try:
self[attr] = value self[attr] = value
except: except KeyError:
self.__dict__[attr] = value self.__dict__[attr] = value
class FancyModule(Module): class FancyModule(Module):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论