2012-01-03 55 views
0

我在學習Python,它對我來說似乎太動態了。我瞭解一些動態/功能特性的應用。例如,可以使用動態類型來編寫對複數和實數表現相同的函數。但其他人的應用對我來說似乎很模糊。Python的動態/功能特性的應用

所以這是我的問題。請舉例說明以下Python功能實際上是否有用:

  • 缺少私有變量。
  • 能力在運行時定義方法和變量。
  • 能夠在運行時替換方法。

(也許一些其他的功能會出現在這裏 - 我仍然在學習。)私有變量

+2

我不知道它是如何可能的任何人給予的_lack of_私有變量怎麼可能是有用的一個例子。真正的問題是,私有變量如何在語言中真正有用。 – wim 2012-01-03 07:21:04

+0

讓我來重述一下這個問題。爲什麼Python中沒有私有變量?它如何使這種語言更好? – Sergey 2012-01-03 08:13:40

回答

1

缺乏:你不必把時間浪費在聲明每個變量的公共或私人。大多數東西通常是公開的。如果你認爲沒有getter/setter的直接變量會破壞事物,你可以使用下劃線命名的約定。 self._metadata。

在運行時定義方法和變量的能力:這是關於動態語言的非python特定的一般問題。一個重要的用例是函數指針和多態的替代。您可以隨時動態製作/更改內容,而不是編譯您遇到的各種功能。

能夠在運行時替換方法:這又主要用於多態和函數指針。你有一個正在運行的人力資源系統,並制定了一項政策您希望對政策進行一些更改。與其重新編制整個系統並重新啓動系統,您可以注入新策略並替換策略相關的方法。

您可能希望有興趣在這篇文章中:http://www.paulgraham.com/diff.html

+0

謝謝,現在一切都很清楚,除了缺乏私有變量。爲了不浪費時間來聲明每個變量的公有或私有的Python設計者可以默認將變量設爲公共,並將聲明訪問類型爲可選。 – Sergey 2012-01-03 08:19:42