2015-12-17 4 views
-4

В некотором коде я просто добавил к более крупному файлу python, который уже использует синтаксис таблиц вместо пробелов (которые, как я знаю, не рекомендуется) m получить синтаксическую ошибку в коде ниже. Я использую vim/python2.4 и включил :set list, чтобы увидеть пробельные символы. Это не похоже на то, что я нарушаю любые правила отступов, и я слежу за тем, какое исключение должно выглядеть в соответствии с документацией/другими частями кода, которые работают правильно.Получение синтаксической ошибки в Python, но правильное количество вкладок и следующий синтаксис

def writeXmlFile(self, testFilekey): 

    #dictionary for xml values 
    xml_d={} 
    try: 
     xml_d['test_r']=self.test_results 
    except: TypeError 
     xml_d['test_r']=-1  <-Syntax error at the first non-whitespace (x of xml_d) 
    print "test_results" 
    print xml_d['test_r'] 

Имеет ли это отношение к пробелу, или есть что-то еще, что я полностью игнорирую здесь?

+0

Пожалуйста, переформатируйте исходный код. проблема с устранением проблемы, связанной с пробелом, с неправильным форматированием очень сложна. –

ответ

2

Проводка такого кода не рекомендуется; очень трудно увидеть фактический текст.

Проблема не в отступе, а в синтаксисе, как говорит ошибка. Двоеточие идет после класса исключения, а не до:

except TypeError: 

Всего отступ блоки в Python введены с двоеточием в конце предыдущей строки.

+0

Ну, это то, что должен был сделать OP, но 'except: TypeError' действителен синтаксически, поэтому сам по себе это не вызвало бы SyntaxError. Это вызвало бы IndentationError в следующей строке. – DSM

+0

Спасибо. Я намеренно разместил его так, чтобы было ясно, что я использовал вкладки вместо пробелов/микса. – Bennett