【发布时间】:2017-06-11 16:06:35
【问题描述】:
考虑以下代码:
import typing
def a(x: int, y: int) -> int:
return x + y
class F(object):
def b(self, x: int, y: int) -> int:
return x + y
def call(operation: typing.Callable[[int, int], int]) -> int:
return operation(2, 2)
call(a)
f = F()
call(f.b)
我的 PyCharm IDE 显示最后一行输入错误:
这是打字/类型声明错误吗? PyCharm 类型检查器是否失败?如果是打字错误,应该是什么?
【问题讨论】:
-
我会将它作为一个错误报告给 PyCharm。这对我来说就像一个错误。绑定的方法具有正确的签名,
self参数被删除。 -
@MoinuddinQuadri:
self的类型是隐含的,不需要指定。即使你这样做了,你也必须使用self: 'F'(字符串文字),因为在创建函数时F类还不存在。 -
pycharm 错误。而@MoinuddinQuadri 不,正如您从错误中看到的那样,它被正确检测到。
-
好的,感谢您的回复和错误报告。
-
这个bug仍然存在CAO这个时间戳。
标签: python pycharm type-hinting