当前位置: 首页 > 知识库问答 >
问题:

当方法参数属于同一类[duplicate]时,未定义类名

卜盛
2023-03-14
class Folder:

    def copy_files_with(self, extension: str, to_location: Folder):
        pass

    def __eq__(self, other):
        if isinstance(other, Folder):
            return (self._parent, self._subdirectory) == (other._parent, other._subdirectory)
        return NotImplemented

    def __hash__(self):
        return hash((self._parent, self._subdirectory))

我使用Visual Studio代码与PyLint,它返回一个错误与copy_files_with方法。

line 20, in Folder
def copy_files_with(self, extension: str, to_location: Folder)

我删除了所有不必要的代码,但第20行是方法copy\u files\u with所在的位置。

我不明白为什么,\uu eq\uu方法可以在isinstance调用中看到文件夹类。我希望to_位置是一个文件夹,我想在类型提示中指定,我该怎么做?

共有1个答案

谢俊英
2023-03-14

处理类及其方法时,在导入模块时,包含“class”和“def”语句的行将运行。方法体(def块中的代码)仅在类稍后实例化并调用其方法时运行。

因此,很自然,类不是在它自己的主体中定义的——类主体必须在Python创建类本身之前进行处理——只有这样,它才会与其名称相关联。

实现这一点的方法是在注释中使用它们的名称作为字符串,在这种情况下,您应该使用

 def copy_files_with(self, extension: str, to_location: 'Folder'):

它应该与大多数使用注释的工具一起工作。

 类似资料:
  • 问题内容: 取自Android的想法:从对话框中模糊和暗化背景窗口。我无法使对话框下的内容模糊。当调用eula.getWindow()时,我收到此错误: 对于类型AlertDialog.Builder,未定义方法getWindow() 随同主要活动中的以下代码一起显示出eula: 任何帮助是极大的赞赏。 问题答案: 是对话框类的方法,而不是对话框生成器的方法。您的代码应该看起来像这样: 请注意,尽

  • 我试图让它在用户按下登录时关闭我的jframe。然而,它不让我处理登录窗口。请帮帮我。谢谢你。

  • 问题内容: 我第一次遇到这种形式的Java代码: 其中ISomeName是具有一个方法的接口,该方法的签名与上面的someMethod()相同。 据我了解,我们正在定义一个实现ISomeName的新名称类类,使用默认构造函数创建此类的对象,并将该对象作为参数传递给methodA。 这是正确的吗? 此功能的名称是什么? 问题答案: 它正在创建一个 匿名类 。 请注意,在匿名类中,您可以从方法的早期代

  • 我试图在Python3.5中使用类型提示。1,代码如下: 我猜在解析类型A时,类型A还没有完全构造,这是范围界定的问题,但我不理解为什么这样的语法不正确。是否有其他方式来表达它,或者它只是一个非法的构造? 我想在基类中使用这个语法提示,它可以在树状层次结构中组成派生类。

  • 我想这样设置参数的类型: 当我尝试这样做时,会引发错误:NameError:名称'Tree'未定义

  • 试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!