如何为自定义类的参数指定类型提示?

时间:2017-08-20 21:39:42

标签: python python-3.x function types type-hinting

让我们说我已经创建了一个下面定义的类,并且我已经在其上调用了方法:

post_user = notifications.map(&:post).map(&:user)

post_shares = []
notifications.each do |n|
  post_shares += n.post.post_shares
end

social_page_users = post_shares.map(&:social_page).map(&:user)

方法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,但它给了我同样的错误。我做错了什么?

1 个答案:

答案 0 :(得分:4)

Per 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)