【发布时间】:2018-09-25 13:20:34
【问题描述】:
首先我做了一个愚蠢的小课
# cheese_helpers.py
class Cheese:
pass
然后就发生了
# weird.py
import lxml
from typing import cast, List
import cheese_helpers
o: List[Any] = []
reveal_type(o) # builtins.List[Any] as expected
y = cast(List[cheese_helpers.Cheese], o)
reveal_type(y) # builtins.List[cheese_helpers.Cheese], as expected
# so far so good. And then:
z = cast(List[lxml.html.HtmlElement], o)
reveal_type(z) # builtins.List[Any] ???????????????
如果你问我,最后一行应该是List[lxml.html.HtmlElement]。奶酪也没有注释,而且效果很好。
我确定要使最后一行正常工作,我需要获取/制作一些 lxml 注释。但对我来说,我的cast 被完全忽略似乎很奇怪。我投到奶酪类,它的工作原理。我投射到 HtmlElement 类,但它没有。
我的问题是为什么?
【问题讨论】:
-
快速检查:如果您使用
import lxml.html而不仅仅是import lxml会怎样?您当前的导入似乎不正确;您需要显式导入子模块。