2012-01-03 5 views
0

私はPythonを学んでおり、それは私にとってはダイナミックすぎるようです。私が理解している動的/機能的な機能のいくつかのアプリケーション。たとえば、動的タイピングを使用して、複素数と実数で同じように動作する関数を記述できます。しかし、他人のアプリケーションは私には不明瞭です。Pythonの動的/機能的機能の適用

ここに私の質問があります。次のPythonの機能が実際に役に立つ例を挙げてください:

  • 私的変数の欠如。
  • 実行時にメソッドと変数を定義する能力。
  • 実行時にメソッドを置き換える機能。

(たぶん他のいくつかの機能がここに表示されます - 私はまだ学んでいる。)プライベート変数の

+2

私は誰もがプライベート変数OF_ _lackをどのように活用できるかの例を与えるためにそれが可能だかわかりません。実際の質問は、プライベート変数が実際にどの言語でどのように役立つかということです。 – wim

+0

私は質問を言い換えることができます。なぜPythonにプライベート変数がないのですか?どのようにしてこの言語をより良くするのですか? – Sergey

答えて

1

欠如:あなたは時間すべての変数のパブリックまたはプライベートを宣言を無駄にする必要はありません。もののほとんどは一般に公開されています。 getter/setterなしで直接アクセスできる変数が壊れていると思われる場合は、名前にアンダースコアを付けるという規約を使用できます。 self._metadata。

実行時にメソッドと変数を定義する能力:これは非Python固有の動的言語に関する一般的な質問です。 1つの重要なユースケースは、関数ポインタと多態性に代わるものです。遭遇するすべての種類の関数を手作業でコンパイルするのではなく、動的に変更/変更することができます。

実行時にメソッドを置き換える能力:これは主にポリモーフィズムと関数ポインタに使用されます。実行中の人事制度があり、その中にポリシーがあります。ポリシーにいくつかの変更を加えたいとします。システム全体を再コンパイルしてシステムを再起動するのではなく、新しいポリシーを挿入してポリシー関連のメソッドを置き換えることができます。

あなたはこの記事に興味がある場合があります:http://www.paulgraham.com/diff.html

+0

ありがとうございます。プライベート変数がないことを除いて、すべてが現在明らかです。変数の公開または非公開のPythonデザイナーを宣言する時間を無駄にしないために、デフォルトでは変数をpublicにして、宣言するアクセスの型を任意にすることができます。 – Sergey

+1

それは本質的に彼らが何をしたかです。変数を非公開にすることは常に回避できます。したがって、[consenting adults](http://mail.python.org/pipermail/tutor/2003-October/025932.html)の規約に従って適切に実行することはできません。 – wim

関連する問題