2016-04-15 111 views
1

我在Android上遇到Python问题。我的代码工作正常的Windows - 但是,在Android 6.1 SPMC它给这个错误:Android上的Python'无效语法'错误

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} 
+2

是什么版本的Python?也许它是在设置字面语法存在之前。即2.6或更低。 – Kevin

+0

Android - python 2.6,win - 2.7,但因为我现在2.6/2.7没有这样的字面语法差异 –

回答

0

设置字面语法为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])