如何解决vscode在python中针对lambda写递归报错use before assignment的问题?

  1. 场景: 使用vscode, 用python, 解决线性规划问题, 其中涉及到"用lambda表达式编写faltten()";
    当我在lambda表达式中涉及递归时, vscode会提醒语法错误, 虽然不影响程序运行, 但是如何不让系统继续提醒此处的错误?
    这是否是用lambda表达式写递归问题时一定会发生的语法"错误"?

  2. 用lambda表达式写:

flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]

用def写:

# flatten把 a = [[1,3],[2,4],[3,5],[“abc”,“def”]] 变成 a1 = [1, 3, 2, 4, 3, 5, ‘abc’, ‘def’]
def flatten(a):
    a1 = [y for x in a for y in x]
    return a1

3.
当用lambda表达式写flatten时, flatten(l)下会报错
报错信息是:
Using variable 'flatten' before assignment
我的理解是, 因为lambda表达式把内容写在了一行, 所以vscode在检查语法的时候, 会认为我们在没有定义flatten的前提下, 调用了flatten()函数

4.
不知道vscode是否可以屏蔽这种问题? 例如在哪里设置一下? 或者像MSoffice里一样, 可以"接受"错误, 他就不会继续显示了? 强迫症患者看着这个红色波浪线真的很难受...

万分感谢

https://blog.csdn.net/basycia/article/details/52556131

检查下是不是pylint这个插件导致的:used-before-assignment
可以在设置里面禁用掉

你也可在github上提交一个issue
https://github.com/PyCQA/pylint/issues

不过还是建议使用pycharm,毕竟更专业