PEP-563: Fixed a nested class example (#2007)
The "Backward Compatibility" section in PEP-563 contains an example which violates Python scoping rules. This PR updates the PEP to say that the example is not OK and should fail. See discussion in typing-sig for details [*]. [*]: https://mail.python.org/archives/list/typing-sig@python.org/thread/F2ERQCGB6W6VADR7G6NN4TLMFJECD6EW/
This commit is contained in:
parent
b95c2cc10d
commit
9bbc154383
|
@ -259,14 +259,15 @@ valid. They can use local names or the fully qualified name. Example::
|
||||||
def method(self) -> C.D.field2: # this is OK
|
def method(self) -> C.D.field2: # this is OK
|
||||||
...
|
...
|
||||||
|
|
||||||
def method(self) -> D.field2: # this is OK
|
def method(self) -> D.field2: # this FAILS, class D is local to C
|
||||||
...
|
... # and is therefore only available
|
||||||
|
# as C.D.
|
||||||
|
|
||||||
def method(self) -> field2: # this is OK
|
def method(self) -> field2: # this is OK
|
||||||
...
|
...
|
||||||
|
|
||||||
def method(self) -> field: # this FAILS, class D doesn't
|
def method(self) -> field: # this FAILS, class D doesn't
|
||||||
... # see C's attributes, This was
|
... # see C's attributes. This was
|
||||||
# already true before this PEP.
|
# already true before this PEP.
|
||||||
|
|
||||||
In the presence of an annotation that isn't a syntactically valid
|
In the presence of an annotation that isn't a syntactically valid
|
||||||
|
|
Loading…
Reference in New Issue