【问题标题】:Problems with Nested Functions嵌套函数的问题
【发布时间】:2010-12-28 03:13:58
【问题描述】:

事实证明这是我在代码前面的 A 行的语法错误。

您好,我在使用 python 编写的嵌套函数时遇到了一些问题。这是相关代码。

device = "/dev/sr0"
def burn():  
  global device


  burnaudiotrack(device)
  createiso(device)  
  burntrack2(device)  

我很困惑,因为每次我尝试运行脚本时,python 都会返回:

    File "./install.py", line 72
    burnaudiotrack(device)
                 ^
SyntaxError: invalid syntax

我以前嵌套过函数,并且以类似的方式这样做。我觉得我在这里遗漏了一些相当明显的东西,但我无法确定它。感谢您的帮助/建议!

编辑:

完整代码:(我试图在原文中发布相关信息) http://dpaste.com/hold/291347/

有点乱,可能还有其他错误,但这个问题目前让我很烦恼。

【问题讨论】:

  • 您能否将整个文件粘贴到 dpaste 或类似站点?
  • 这是有效的python,没有SyntaxError
  • 什么版本的 Python?上面的代码在 Python 2.5 和 Python 2.6 上适用于我(带有 burnaudiotrackcreateisoburntrack2 函数的存根)。
  • 我在现代 Linux 内核 (2.6.33) 下使用 python 2.6.5。完整的代码在帖子中。我也认为这种语法很好,所以我猜代码的其他地方有问题?

标签: python function nested


【解决方案1】:

您在第 61 行缺少一个右括号。

看起来行尾的引号和括号被交换了。

speed = raw_input("Recomended(4);Default(8))"

应该是

speed = raw_input("Recomended(4);Default(8)")

【讨论】:

  • 我现在想躲在可耻的尴尬中。感谢您指出这一点,否则我可能会浪费时间重写代码部分。
  • 不用担心;这就是为什么发布完整的源代码是好的,换个角度来看这个问题。
【解决方案2】:

您粘贴到问题中的代码似乎有制表符和空格。您应该(根据PEP-8)在 Python 中始终使用 空格 进行缩进。检查您的文本编辑器设置。

可能发生的情况是,您的编辑器中看起来正确的标签和空格混合在一起,但 Python 编译器的解释不同。 Python 编译器看到不同的不一致缩进,并引发 SyntaxError。

更新:正如另一个答案指出的那样,您在原始问题中未显示的一行代码中缺少右括号。尽管如此,我关于您源中标签的 cmets 仍然有效。

【讨论】:

  • 这是一个很好的建议,但我正在运行的实际代码都是由同一个编辑器(带有选项卡)格式化的。在发布之前,我已经确定这不是问题。不过感谢您的建议!
猜你喜欢
  • 2021-02-12
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2020-11-30
  • 2021-11-29
相关资源
最近更新 更多