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

如何为自定义类的参数指定类型提示?[副本]

牟正真
2023-03-14

假设我创建了一个定义如下的类,并对其调用了方法:

class Student:

    def __init__(self, name):
        self.name = name
        self.friends = []

    def add_friend(self, new_friend: Student):
        self.friends.append(new_friend)

student1 = Student("Brian")
student2 = Student("Kate")
student1.add_friend(student2)

方法add\u friend有一个名为new\u friend的参数,它是一个Student对象。我如何使用类型提示来指定它?我假设您只需输入类名,如new\u friend:Student,但它不起作用。当我运行它时,我得到一个名称错误:没有定义名称“Student”。我还尝试了新朋友:uuuu main。学生,但它给了我同样的错误。我做错了什么?

共有1个答案

羊舌洛华
2023-03-14

根据PEP-484,将类的字符串名称用于正向引用:

class Student:

    def __init__(self, name):
        self.name = name
        self.friends = []

    def add_friend(self, new_friend: 'Student'):
        self.friends.append(new_friend)
 类似资料:
  • 问题内容: 我想在当前的Python 3.5项目中使用类型提示。我的函数应该接收一个函数作为参数。 如何在类型提示中指定类型函数? 我检查了PEP 483,但在那里找不到函数类型提示。 问题答案: 正如@jonrsharpe在评论中指出的,可以使用以下方法完成: 问题是,将其本身翻译为: 一个Callable接受 任意数量的/类型的 参数,并返回任何类型的值。在大多数情况下,这不是您想要的,因为您

  • 我有一本这样的字典: 我想指定类型提示来指示键是字符串,值是的实例。 这在Python3.8中可能吗? 我找到了,但这似乎试图指示一组固定的键。我会允许任何字符串作为键。

  • 假设我有一个函数: 如何指定可以为的返回类型?

  • 问题内容: 假设我有一个函数: 如何为可以指定的东西指定返回类型? 问题答案: 您正在寻找。 由于您的返回类型可以是(从返回),也应该使用: 在有关打字的文档中,是以下内容的简写: 等价于。 其中表示类型或的值。 如果由于担心别人可能偶然发现而没有意识到它的含义而希望变得露骨,则可以始终使用: 但是我怀疑这是一个好主意,是一个指示性名称,它确实节省了几次击键。 正如@ Michael0x2a的注释

  • 在python 3.10中,我想在同一个文件中定义两个类,其中每个类的一个方法必须向另一个方法输入提示(代码如下)。 由于必须先定义一个,因此不允许提示,因为另一个类型尚未定义。我如何解决或绕过这个问题?

  • 我正在为一个项目试验Apache Flink。我正在使用 Flink 来聚合一系列传感器捕获的环境数据。为了计算空气质量指数,我正在尝试实现一个自定义聚合函数,以便在带有窗口的分组选择中使用,但我对类型提示有问题。下面是带有 DataTypeHint 注释的函数代码: 但我有以下例外: 我做错了什么?