Skip to content

Instantly share code, notes, and snippets.

@hjwp
Last active February 23, 2020 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hjwp/e322c86d14ce0b11f08b27d7b17f7791 to your computer and use it in GitHub Desktop.
Save hjwp/e322c86d14ce0b11f08b27d7b17f7791 to your computer and use it in GitHub Desktop.
def foo() -> int:
return 42
from typing import Protocol
class MyType(Protocol):
def foo(self) -> int:
...
class MyClass:
def foo(self) -> int:
return 1
# this is OK
a = MyClass() # type: MyType
import mymodule
# mymodule.py just contains
# def foo() -> int:
# return 42
# but this is not.
b = mymodule # type: MyType
# mypy complains saying
# Incompatible types in assignment (expression has type Module, variable has type "MyType")
import inspect
print(inspect.signature(a.foo))
print(inspect.signature(b.foo))
# both print: () -> int
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment