Явная рекомендация : НЕ ИСПОЛЬЗУЙТЕ следующее.
и, пожалуйста, успокойся на понижение голосов ...
Редактировать: Я даже нашел цитату Алекса Мартелли, в которой говорится, насколько плоха идея моего фрагмента.
(Короткая выдержка из Python в двух словах , 2-е изд. O'Reilly 2006)
Используйте exec только тогда, когда это действительно необходимо. Чаще всего лучше избегать, чтобы exec выбирал более конкретные, хорошо контролируемые механизмы вместо этого: exec-файлы теряют контроль над пространством имен вашего кода, ухудшают производительность и подвергают вас исчислению чисел, трудно обнаруживаемым ошибкам.
Поэтому вот мой не такой питонический момент :
class Log:
BAT_STATS = ['AB', 'R', 'H', 'HR']
def __init__(self):
for cat in Log.BAT_STATS:
exec('self.' + cat + ' = 0')
Использование setattr (), конечно, чище (я рекомендую его в этом простом случае), но приятно помнить о силе исполнения ... Немного похоже на напоминание об опасном инструменте, который мы имеем в сарае.