Visual Studio的Python类型推断似乎变得疯狂了吗?

时间:2017-01-03 02:59:48

标签: python visual-studio python-2.7 visual-studio-2015 type-inference

我有以下代码,其类型(非)以非常奇怪的方式推断。

令人困惑的是,只是引擎推断类型的典型故障,而是表现出我甚至无法理解的奇怪行为 where 或< em>错误可能是什么。

有人可以解释发生了什么吗?为什么分配给xyz的语句的订单状态会影响<的类型em>彼此?

(为方便起见,我添加了一个后缀,表示推断类型,因此z1__int被推断为int。)

def lmap1(func, items):
    return [func(item1) for item1 in items]

def tmap(f, items):
    return tuple(lmap1(f, items))

def a():
    f = lambda i: i
    items = [1]
    x1__unknown = tmap(f, items)[0]
    y1__unknown = tuple(lmap1(f, items))[0]
    z1__int     = tuple([f(item1) for item1 in items])[0]

def b():
    f = lambda i: i
    items = [1]
    y2__int     = tuple(lmap1(f, items))[0]
    x2__unknown = tmap(f, items)[0]
    z2__int     = tuple([f(item1) for item1 in items])[0]

def c():
    f = lambda i: i
    items       = [1]
    y3__unknown = tuple(lmap1(f, items))[0]
    x1__unknown = tmap(f, items)[0]

0 个答案:

没有答案