Как использовать слово «класс» как вызов функции функции в python - PullRequest
3 голосов
/ 14 января 2010

Я пишу генератор XML по запросу моего менеджера. Для удобства ввода я решил использовать ElementTree в качестве парсера и SimpleXMLWriter в качестве средства записи.

Результирующий XML требует атрибутов с именем «класс». например

<Node class="oops"></Node>

Как и предполагалось в официальном руководстве, для написания узла XML просто используйте этот метод:

w.element("meta", name="generator", value="my application 1.0")

Итак, я написал:

w.element("Node", class="oops")

Python не работает, зевая SyntaxError. Любая помощь?

Ответы [ 3 ]

7 голосов
/ 14 января 2010

Полагаю, разработчики SimpleXMLWriter имели в виду это решение:

w.element("Node", None, {'class': 'oops'})

или

w.element("Node", attrib={'class': 'oops'})
5 голосов
/ 14 января 2010

То, что написал Стивеха, правда. Как и на любом языке, ключевые слова не могут быть использованы для разных целей.

Что вы можете сделать, если вы должны использовать «класс», это:

w.element("Node", **{'class': 'oops'})
3 голосов
/ 14 января 2010

class - зарезервированное слово в Python. Вы просто не можете использовать его для имени переменной, так же как не можете иметь переменную с именем class в C ++.

Обычное сокращение для class: klass или cls.

Вот официальный список зарезервированных слов в Python:

http://docs.python.org/reference/lexical_analysis.html#keywords

...