我有一个用作装饰器的模块-修改递归使用的函数。
该模块优化了tail call以避免递归限制-请参见下面的功劳。
如果我将代码复制粘贴到控制台上,请先将模块粘贴,然后再将修饰后的功能粘贴到控制台上。
但是,如果我导入模块,则会收到错误消息,指出模块无法导入sys-尽管我将其导入模块的第一行。
sessionStorage
我以为我以错误的方式导入了模块:
我尝试过
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "TailRecurseException.py", line 18, in func
f = sys._getframe()
NameError: global name 'sys' is not defined
>>>
和
from TailRecurseException import tail_call_optimized
但结果相同。
由于无法导入sys,我在该模块中装饰另一个功能该怎么做?
这是我的子模块:
from TailRecurseException import *
@tail_call_optimized
def recursive_activations( ...)
积分:https://mail.python.org/pipermail//python-list/2006-February/407243.html
答案 0 :(得分:0)
如果我复制粘贴您附加到tcr.py
的子模块代码,然后执行
from tcr import tail_call_optimized
@tail_call_optimized
def recursive_activations(x):
pass
一切正常。
(顺便说一句,您希望将except TailRecurseException, e:
更改为except TailRecurseException as e:
以符合现代Python。)