-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
Description
When trying to add type annotations to a project (https://github.com/DCSO/flor), mypy
would complain that bytes
was not a valid type, which was quite puzzling to say the least. After some head scratching and searching in the issue log I was able to reproduce the problem with a simple module (Python 3.5.2+ with mypy 0.511):
class Foo(object):
def __init__(self) -> None:
self.bytes = bytearray(b"foo")
def bar(self, f : bytes):
return f + b"test"
foo = Foo()
foo.bar(b"test")
Running mypy example.py
returns the following error messages:
example.py:6: error: Invalid type "bytes"
example.py:7: error: Unsupported left operand type for + (object)
When renaming self.bytes
to self._bytes
, no issues are reported. It seems that mypy mistakes self.bytes
for a class variable, although it is an instance variable and not visible at the declaration time of function bar
.