pylint自定义检查器:对于相对导入,node.modname为空

2024-10-04 01:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个定制的pylint检查器,并且在def visit_importfrom(...)中,它是在如下语句中输入的:from base import package

当import语句的形式如预期的from numpy import arraynode.modname == 'numpy'

但是,在执行相对导入时,例如同级包from . import sibling_packagenode.modname == '',而不是预期的'.'。不幸的是,对于from .. import blah这样的语句也是如此,如果不进行hacky字符串解析,就无法确定原始语句

有人熟悉这一点并对此作出解释吗


Tags: fromimportnumpynodepackagebasedef语句