インスタンス変数のアクセスは「self.foo」のような形式で行います。「@foo」という形式に比べてタイプ量が多いので面倒と感じることがあります。ファンは「@」という記号を使うのが醜いと感じるようです。Rubyがいかに変わった言語か(なんちゃって)を説明しています。それから、記法を比較する前に、「Rubyにはパブリックメソッドしかなくて、Pythonはすべてパブリックフィールド」という実行モデルそのものの違いを先に気にするのが重要ではないかと思います。Pythonで完全なOODをやってしてしまうと、そうなるかもしれません。多くてかなわないと思うほどオブジェクトの状態数が多いとき、Python的にはオブジェクトを作りすぎなのかもしれません。文字列を書き換えることはできません。効率を考えるとうれしくないのですが、オブジェクトの書き換えは面倒を引き起こすこともありますから、うれしくないことばかりでもありません。PythonにはRubyのシンボルと同じものがないので、文字列が兼任してる。JavaのStringと同じ理由で、けしてミュータブルであってはなりません。「配列」のようなデータ構造として、変更可能なリストと変更不可能なタプルのふたつをもっています。このふたつの使い分けはときどき悩みのタネです。慣れてしまうとどうということはないようですが。同様、鈎括弧でくくります。タプルは要素をカンマで区切って並べたものですが、普通は式の他の部分と区別するために丸括弧でくくります。タプルは「イミュータブルなひとつの値」です。イミュータブルな文字列同様、スレッドセーフで確定的なハッシュ値を持つため、たとえば、辞書のキーなどに向いています。Rubyではシンボルを使う状況で、タプルを使います。http://d.hatena.ne.jp/tanakahisateru/20081111/1226337720の、メモ化を参照してください。可変長引数を値のタプルとして受け取り、辞書のキーにしています。リストは普通の配列です。要素を追加/削除/並べ替えできます。普通に、可変長に要素が並んでいるデータバッファが欲しければ、迷わずリストを選べばよいと思います。「行列という値(整数や虚数みたいに、数の一種:イミュータブル)」はタプルで作るのが適当で、行列計算機の内部バッファはリストで作るのが適当だと思います。言語仕様だけ見て考えるより、意味で直感的にやるのがいいかもしれません。それでも普通は、8〜9割以上の場合で、リストが適当だと思います。Blog|ブログを報告する。