2013-01-04 84 views
1

我理解它是如何工作的,我理解語法的含義。但我不明白我爲什麼要使用它?爲什麼我需要現實生活中的私人方法?

+5

我不認爲這是一個適當的問題堆棧溢出。大量關於面向對象設計的信息以及在線提供的私人與公衆的好處。 – Pete

+1

任何時候當有人問你的名字時,你是否交出你的錢包和身份證?如果有人問:「你有一美元我可以借?」你給他們你的帳戶和個人識別碼,以便他們看起來? – asawyer

+6

你不明白Python中私有方法的語法,因爲沒有任何方法。 – geoffspear

回答

5

Python中沒有私有成員,包括方法。雙下劃線前綴實際上只是私人成員的「約定」,由於名稱被進一步損壞,因此額外由Python強制執行。儘管從外部訪問這些方法並不是不可能的。

一般而言,沒有真正的需要讓會員真的是「私人」的。通常,單個下劃線前綴用於將成員標記爲「內部」,並且要求這些類型的用戶保持獨立。

除此之外,當然還有私有(或內部)方法的原因是將功能的公共部分提取到方法中,因此您不必重複自己。

有關缺少Python成員私有性的更多信息,請參閱this question

+0

而且,當然,要告訴用戶你的模塊「不要自己調用這個方法,如果你這樣做,當它在下一個版本中消失時不要責怪我,並且不會有任何警告」 – geoffspear

0

sLet說,你有操作運行a是在同一類調用subOperationAsuboperationB,以及這些方法沒有任何意義的單兵作戰,他們操縱數據,你必須阻止他們的意外處決(這意味着從方法操作A)調用。所以私人允許您保護和封裝您的方法,限制他們的可見性只限於所需的範圍。

相關問題