Форум сайта python.su
0
Всем добрый день.
Волнует меня следующий вопрос.
В книге представлен следующий код:
class AttrDisplay: """ Реализует наследуемый метод перегрузки операции вывода, отображающий имена классов экземпляров и все атрибуты в виде пар имя=значение, имеющиеся в экземплярах (исключая атрибуты, унаследованные от классов). Может добавляться в любые классы и способен работать с любыми экземплярами. """ def gatherAttrs(self): attrs = [] for key in sorted(self.__dict__): attrs.append('%s=%s' % (key, getattr(self, key))) return ', '.join(attrs) def __str__(self): return '[%s: %s]' % (self.__class__.__name__, self.gatherAttrs()) if __name__ == '__main__': class TopTest(AttrDisplay): count = 0 def __init__(self): self.attr1 = TopTest.count self.attr2 = TopTest.count+1 TopTest.count += 2 class SubTest(TopTest): pass X, Y = TopTest(), SubTest() print(X) # Выведет все атрибуты экземпляра print(Y) # Выведет имя класса, # самого близкого в дереве наследования
Прикреплённый файлы:
classtools.py (1,2 KБ)
Офлайн
61
python3 /Users/kobzar/Develop/Python/test.py [TopTest: attr1=0, attr2=1] [SubTest: attr1=2, attr2=3]
Отредактировано ZerG (Май 4, 2016 13:38:21)
Офлайн
0
ZerGНе очень понял почему мой вариант не правильный и данная программа не работает (не открывает условие if __name__ == ‘__main__’
Офлайн
0
ZerG
python3 /Users/kobzar/Develop/Python/test.py
Отредактировано Niccolum (Май 4, 2016 14:28:50)
Офлайн
568
Офлайн
0
FishHookДа, прочитал (признаюсь, мельком), оттуда эту фразу и взял.
читать до просветления
Офлайн
20
# -*- coding: utf-8 -*-
Отредактировано noob_saibot (Май 4, 2016 15:26:55)
Офлайн
20
NiccolumВы попробуйте и так и так.
Офлайн
0
noob_saibotЕсли вставить в саму программу:
Офлайн
568
А какое отношение питон имеет к cmd?
Офлайн