【问题标题】:Python 'invalid syntax' error on AndroidAndroid上的Python“无效语法”错误
【发布时间】:2016-08-07 09:26:21
【问题描述】:

我对 Android 上的 Python 有疑问。我的代码在 Windows 上运行良好 - 但是,在带有 SPMC 的 Android 6.1 上,它给出了这个错误:

SyntaxError: ('invalid syntax', ('/storage/emulated/0/Android/data/com.semperpax.spmc16/files/.spmc/addons/context.addtolib/context.py', 104, 45, '        curVisCond         = {self.container, \n'))

我不明白为什么。部分代码:

  def doAction(self):

    curVisCond         = {self.container,
                          TAG_CND_NOTFOUND  if not self.isFound        else TAG_CND_FOUND,
                          TAG_CND_NEWSRC    if self.isNewSource        else TAG_CND_OLDSRC,
                          TAG_CND_NEWFRC    if self.isNewFolSource     else TAG_CND_OLDFRC,
                          TAG_TYP_FOLDER    if self.items.vidIsFolder  else TAG_TYP_FILE,
                          TAG_CND_LISTEMPTY if self.items.vidIsEmpty   else Empty,
                          TAG_CND_NOUPD     if not addon.ADDUPD        else Empty}

【问题讨论】:

  • 它是什么版本的 Python?也许它来自之前的集合文字语法存在。即 2.6 或更低。
  • Android - python 2.6,win - 2.7,但我现在的 2.6/2.7 没有这样的字面语法差异

标签: android python syntax-error


【解决方案1】:

设置文字语法为introduced in 3.1 and backported to 2.7。它在 Python 2.6 中不是有效的语法。

使用列表文字,并使用set 类型对其进行转换。

curVisCond         = set([self.container,
                          TAG_CND_NOTFOUND  if not self.isFound        else TAG_CND_FOUND,
                          TAG_CND_NEWSRC    if self.isNewSource        else TAG_CND_OLDSRC,
                          TAG_CND_NEWFRC    if self.isNewFolSource     else TAG_CND_OLDFRC,
                          TAG_TYP_FOLDER    if self.items.vidIsFolder  else TAG_TYP_FILE,
                          TAG_CND_LISTEMPTY if self.items.vidIsEmpty   else Empty,
                          TAG_CND_NOUPD     if not addon.ADDUPD        else Empty])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 2016-10-18
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多