John 历 心锐之光 2020-08-12 03:21 采纳率: 0%
浏览 234

如何解决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里一样, 可以"接受"错误, 他就不会继续显示了? 强迫症患者看着这个红色波浪线真的很难受...

万分感谢

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2020-08-12 09:34
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常