如何为自定义类的参数指定类型提示? [复制]
Posted
技术标签:
【中文标题】如何为自定义类的参数指定类型提示? [复制]【英文标题】:How to specify Type Hint for Parameters for Custom Classes? [duplicate] 【发布时间】:2018-01-28 22:24:06 【问题描述】:假设我创建了一个定义如下的类,并在其上调用了方法:
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
对象。如何使用类型提示来指定它?我假设您只需输入类的名称,例如new_friend: Student
,但它不起作用。当我运行它时,我得到一个NameError: name 'Student' is not defined
。我也试过new_friend: __main__.Student
,但它给了我同样的错误。我做错了什么?
【问题讨论】:
【参考方案1】:根据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)
【讨论】:
这是正确的。使用类型提示时,会发生前向引用和自引用,当它们发生时,只需在类名周围加上引号。以上是关于如何为自定义类的参数指定类型提示? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何为具有映射到多个柴油列的自定义字段的类型派生 Queryable?
如何为 Jcrop 'setSelect' 选项指定自定义值?
如何为自定义 UITableView 标题部分笔尖添加分隔线? [复制]