如何为自定义 类 的参数指定类型提示?
How to specify Type Hint for Parameters for Custom Classes?
假设我创建了一个下面定义的 class,并且调用了它的方法:
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_friend
有一个名为 new_friend
的参数,它是一个 Student
对象。我如何使用类型提示来指定它?我假设您只需输入 class 的名称,例如 new_friend: Student
,但它不起作用。当我 运行 它时,我得到一个 NameError: name 'Student' is not defined
。我也试过 new_friend: __main__.Student
,但它给了我同样的错误。我做错了什么?
根据 PEP-484,使用 class 的字符串名称作为前向引用:
class Student:
def __init__(self, name):
self.name = name
self.friends = []
def add_friend(self, new_friend: 'Student'):
self.friends.append(new_friend)
假设我创建了一个下面定义的 class,并且调用了它的方法:
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_friend
有一个名为 new_friend
的参数,它是一个 Student
对象。我如何使用类型提示来指定它?我假设您只需输入 class 的名称,例如 new_friend: Student
,但它不起作用。当我 运行 它时,我得到一个 NameError: name 'Student' is not defined
。我也试过 new_friend: __main__.Student
,但它给了我同样的错误。我做错了什么?
根据 PEP-484,使用 class 的字符串名称作为前向引用:
class Student:
def __init__(self, name):
self.name = name
self.friends = []
def add_friend(self, new_friend: 'Student'):
self.friends.append(new_friend)