>>802
横レス失礼するよ。

オブジェクト指向の本質が何かとかカプセル化がうんぬんかとかを議論する気は無いけど、
OOP元祖であるSmalltalk、およびRubyと比較した観点でのPythonの欠点を挙げてみる。

・ブロック(クロージャ)が実装されていない。
・条件分岐が式ではなく文として実装されている。

Rubyだとブロックが使えるし、if .. then .. else(およびcase .. when ..)は式だから、
Smalltalkで書かれたコードをスイスイと書き換えて再利用できる。

Pythonというのは、(C++やJavaと同様に)手続き型言語へ「後からOOPを継ぎ足し」た
設計のように見える。それは、selfというキーワードを「多用」するスタイルについても同じ。
プログラマにOOPスタイルのコーディングであることをわざと意識させようとする
(教育的な?)設計思想であると言えるのかもしれない。それに対してSmalltaikやRubyは
デフォがOOPだから、selfというキーワードは「必要な時」にしか使わない。

これらは「最初からOOPである」ことを前提に設計されたSmalltalkやRubyと
「後からOOPを継ぎ足し」たPythonとの大きな差異ではないかと思う。