最近碰到这么个问题,有这么个函数,用来将HTML转义字符变回原来的字符:
其中unichr用来将一个整数转换成Unicode字符,仅在Python2中存在。Python3中,chr可以同时处理ASCII字符和Unicode字符。所以我们在Python3环境中将unichr映射到chr上。
运行这段代码会在第8行报错:NameError: free variable ‘unichr’ referenced before assignment in enclosing scope。而且只有Python2会报错,Python3不会。
首先从问题上看,报错的原因是在闭包replc里unichr没有定义。
但是Python2明明是有unichr这个内置函数的,为啥就变成未定义呢?