Всем спасибо за объяснения :)
Андрей Светлов, отдельное спасибо.
Вопрос был для меня закономерен, просто я первый раз такое встречаю.
До этого в образце ООП для меня С++ такого я не встречал. Спасибо за понимание.
>>> class A(object): pass >>> a = A(); a.p() Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> a = A(); a.p() AttributeError: 'A' object has no attribute 'p' >>> def p(self): print self.d >>> A.p = p; a.d = 'Hello world' >>> a.p() Hello world >>> A.p(a) Hello world >>>
Андрей СветловКогда заходит речь на эту тему, я тоже иногда говорю подобные слова :), но, черт возьми, как иногда не хватает гибкости руби, смоллтолка, или хотя бы того же javascript'а.
Когда я писал свою простыню, она мне показалась и так достаточно длинной, чтобы приводить подобный пример. Поэтому я только упомянул о возможности динамического создания/изменения класса.
По поводу встроенных классов: я не вижу необходимости дополнять str, а тем более object. Более того, считаю, что это очень опасно.