【发布时间】:2018-10-19 16:43:52
【问题描述】:
您可以根据https://www.python.org/dev/peps/pep-0484/#stub-files在 Python 2.7 中对存根文件使用类型提示
但是我不能让它适用于子类中的方法签名。
在存根文件 a.pyi 中:
class A(object):
def foo(self, timestamp: float): ...
在 Python 2.7 文件 b.py 中
class B(A):
def foo(self, timestamp):
print(timestamp) # Inferred type of timestamp is not float!
PyCharm 2017.3.3 不会将时间戳推断为浮点数。我没有检查 mypy 的行为。
有两种解决方法会导致代码冗余(不是首选)
解决方法 1
在存根文件 b.pyi 中
class B(A):
def foo(self, timestamp: float): ...
解决方法 2
在 Python 2.7 文件 b.py 中
class B(A):
def foo(self, timestamp): # type: (float) -> None
print(timestamp)
【问题讨论】:
标签: python-2.7 pycharm type-hinting