使用尚未实现List<SubObjects>
的Python 2.6,如何在依赖它的现有程序中反向移植此函数?
函数的代码基本上可以简化为一行,我尝试在我的程序的顶部将这样的lambda函数放入Logger类中:
logging.Logger.getChild(name)
但Travis-CI仍然告诉我它没有像许多错误一样工作:
import sys, logging
if sys.version_info <= (2, 6):
logging.Logger.getChild = lambda self, suffix:\
self.manager.getLogger('.'.join((self.name, suffix)) if self.root is not self else suffix)
全局变量self.logger = logger.getChild('Browser')
E AttributeError: Logger instance has no attribute 'getChild'
在此之前初始化为:
logger
我的错误是什么?如何在不遗漏logger = logging.getLogger(__name__)
函数的情况下调整代码以支持Python 2.6?
答案 0 :(得分:2)
如果sys.version_info
返回(如我的测试中)一个包含2个以上元素的元组,则您的版本检查将失败:
>>> sys.version_info
(2, 6, 6, 'final', 0)
>>> sys.version_info <= (2, 6)
False
导致您的后端口永远不会被定义。一个解决方法是将比较限制为前两个元素:
if sys.version_info[:2] <= (2, 6):
...