2016-04-15 142 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])