-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Description
I am on Python 3.8 and use MyPy 0.740
I consider the following example from PEP 544:
from typing import Any, Protocol
class ProtoA(Protocol):
def meth(self, x: int) -> int: ...
class ProtoB(Protocol):
def meth(self, obj: Any, x: int) -> int: ...
class C:
def meth(self, x: int) -> int: ...
a: ProtoA = C # Type check error, signatures don't match!
b: ProtoB = C # OKIn the final two lines a class is assigned to a instance. MyPy thus reports
/tmp/protocol-test.py:19: error: Incompatible types in assignment (expression has type "Type[C]", variable has type "ProtoA")
/tmp/protocol-test.py:20: error: Incompatible types in assignment (expression has type "Type[C]", variable has type "ProtoB")
Found 2 errors in 1 file (checked 1 source file)
If I fix that (i.e. adding the missing '()'), than it seems as if the assignment to b should cause a type error, not the assignment to a. Mypy`s report is consistent to my presumption.
I hope it is ok to ask this, since I am here anyways: What is the difference between ... and pass? RTFM with link would be fine.
Metadata
Metadata
Assignees
Labels
No labels