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

revised Module.make

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