2011-07-28 6 views

答えて

2

Javaが行います。

Pythonではありません。

Pythonは強く動的に型指定されます。オブジェクトを作成すると、そのタイプのオブジェクトになります。しかし、そのオブジェクトを指し示す変数は、どの型のオブジェクトでも指すことができ、そのオブジェクトが指しているオブジェクトの型を知る必要はありません。コメント欄で質問をもとに

編集:

これは非常に簡単に、辞書を期待するほとんどの機能が使用することができ、クラス、またはリスト、または別のタイプを定義することができます。したがって、特別な種類のリストを作成したい場合は、それを反復処理してオブジェクトをカスタム順序で返します。つまり、__getitem____iter__などのメソッドをサポートするクラスを宣言するだけです。クラスはまるでそれがリストであるかのようにそれを使います。

Pythonの抽象基本クラスについては、http://docs.python.org/glossary.html#term-abstract-base-classを参照してください。使用時には、Javaの抽象基本クラスと非常に似ています。

+0

Javaがよりうまくいくようになるでしょうか?それはPythonのエラーの余地のように思われる – Misty

+2

それは機能です。それはあなたにもっと力を与える。リストのように動作するクラスを定義することができ、リストを取るメソッドで使用できます。ファイルのように動作するクラスを作成して、ファイルオブジェクトを必要とするコードにデータを供給したり、コードからデータを取得したりすることができます。 – agf

+1

「より良い」は、見る人の目の前にあります。あなたと同じように、厳密な型チェックがないと、エラーが多く発生するか、コードを書くときにエラーが発生します。 (たぶん私は松葉杖としてコンパイラが必要かもしれません)しかし、私は強く型付けされていないPythonやPHPのようなものを好む多くのプログラマーに会った。 – Marvo

8

Pythonは、Rubyのように、動的タイピングのスタイルであるDuck Typingを使用します。 Javaは明らかに静的に型付けされており、型チェックはコンパイル時に行われます。