2017-02-26 110 views
2

我定義一個Python類:Python類型註釋:任何方式來註釋一個屬性?

class Foo: 
    bar = property(lambda self: Bar(self)) 

我想註釋bar屬性的說,它包含Bar類的項目。有沒有一種可以接受的方式呢?我知道,這是有效的Python語法:

bar: Bar = property(lambda self: Bar(self)) 

但是,這是一個註釋屬性的一個接受的方式?

+3

注意,屬性可以採用[doc](https://docs.python.org/3/library/functions.html#property)字符串 – Nullman

回答

0

如果你想成爲安全,簡單地重構它到使用裝飾形式,並指定一個返回值:

class Foo: 
    @property 
    def bar(self) -> Bar: 
     return Bar(self) 

這也是typeshed使用的形式收集存根註釋標準庫,也順利通過mypy

至於3.6,形式變量註釋語法:

bar: property = property(lambda self: Bar(self)) 

mypy檢查當目前接受的。