Python物件導向中面試問到的知識點

2021-10-04 00:05:13 字數 790 閱讀 8592

python中不存在真正的私有方法。為了實現類似於c++中私有方法,可以在類的方法或屬性前加乙個「_」單下劃線,意味著該方法或屬性不應該去呼叫,它並不屬於api。

在使用property時,經常出現這個問題:

class baseform(strandunicode):

...def _get_errors(self):

"returns an errordict for the data provided for the form"

if self._errors is none:

self.full_clean()

return self._errors

errors = property(_get_errors)

這個雙下劃線更會造成更多混亂,但它並不是用來標識乙個方法或屬性是私有的,真正作用是用來避免子類覆蓋其內容。

讓我們來看乙個例子:

class a(object): 

def __method(self):

print "i'm a method in a"

def method(self):

self.__method() a = a() a.method()

「__xx__」經常是操作符或本地函式呼叫的magic methods。在上面的例子中,提供了一種重寫類的操作符的功能。

在特殊的情況下,它只是python呼叫的hook。例如,__init__()函式是當物件被建立初始化時呼叫的;__new__()是用來建立例項。

繼承 面試問到)

原型鏈繼承 原型鏈繼承 function father father.prototype.getname function son son.prototype.getage son.prototype new father son.prototype.getsonname var s new son...

可能問到的面試問題

寫在前面 最近總在找工作和被找工作糾纏著,由於各種因素的影響,想去的公司去不了,能去的公司不了解,我想,這到了我該做出抉擇的時刻了!生活中需要做選擇的地方太多了,要綜合各方面的因素,結合自身興趣,選擇乙個最合適的!grab every chance.1 請你自我介紹一下自己好嗎?2 你覺得你個性上最...

面試中被問到關於物件導向的理解

物件導向有三大特性 封裝 繼承和多型。封裝就是將類事物的屬性和行為抽象成乙個類,使其屬性私有化,行為公開化,提供了資料的隱秘性的同時,使 模組化。這樣做使得 的復用性更高。繼承則是進一步將類事物共有的屬性抽象成乙個父類,而每乙個子類是乙個特殊的父類 有父類的行為和屬性,也有自己特有的行為和屬性。這樣...