【问题标题】:"E1101" - Instance of "Class" has no "method" member“E1101” - “类”的实例没有“方法”成员
【发布时间】:2016-08-18 00:18:19
【问题描述】:

我的课程是这样组织的:

class One:
    def funcOne(self):
        doSomething()

class Two(One):
    def funcTwo(self):
        self.funcOne()

当我运行它时,它起作用了,Python 的继承模型允许Two 能够调用funcOne

但是,运行 pylint 会给我错误:

[E1101 (no-member), myscript] Instance of 'Two' has no 'funcOne' member

我已经看过another question on the site,但这个问题涉及变量,唯一提出的解决方案是将它们放入字典中,而方法无法做到这一点。

如何让pylint 识别继承行为?


编辑:我正在运行 pylint 1.1.0,这太可笑了,也许这就是原因?

【问题讨论】:

  • 尝试在funcTwo 中调用funcOneself,所以:self.funcOne()
  • @Nicarus 抱歉,这个问题打错了,我会更新
  • 不能“解决”问题,但您可以通过添加以下行来明确忽略此错误:# pylint: disable=E1101

标签: python python-2.7 pylint


【解决方案1】:

原来我的pylint 版本严重过时了。我正在运行版本1.1.0,并更新到最新版本1.6.4,警告消失了!

我认为这是 pylint 中的一个错误,已在版本之间修复

【讨论】:

    【解决方案2】:

    致电self.funcOne()

    类 One 也应该从对象继承

    class One(object):
        ...
    

    【讨论】:

    • 抱歉给您带来了困惑,我确实用self 打电话。另外,我认为 Python 类隐式继承自 object?
    • @Jeeter - 仅适用于 python 3+。但在任何情况下都最好是明确的。
    • @Jeeter - 你是怎么调用 funcTwo() 的?
    • 好的,所以由于某种原因,当我昨天添加object 的子类时,它仍然失败pylint,现在它通过了:\。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2016-06-29
    • 2019-03-24
    • 2019-01-11
    • 1970-01-01
    • 2020-05-05
    • 2019-01-10
    相关资源
    最近更新 更多