匿名函數有個限制,就是隻能有一個表達式,不用寫return,返回值就是該表達式的結果。用匿名函數有個好處,由於函數沒有名字,沒必要擔憂函數名衝突。此外,匿名函數也是一個函數對象,也能夠把匿名函數賦值給一個變量,再利用變量來調用該函數。html
面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類是抽象的模板,好比Student類,而實例是根據類建立出來的一個個具體的「對象」,每一個對象都擁有相同的方法,但各自的數據可能不一樣。仍以Student類爲例,在Python中,定義類是經過class關鍵字:python
若是要讓內部屬性不被外部訪問,能夠把屬性的名稱前加上兩個下劃線__,在Python中,實例的變量名若是以__開頭,就變成了一個私有變量(private),只有內部能夠訪問,外部不能訪問。函數
class Student(object): def __init__(self, name, score): self.__name = name self.__score = score def print_score(self): print('%s: %s' % (self.__name, self.__score))
可是若是外部代碼要獲取name和score怎麼辦?能夠給Student類增長get_name和get_score這樣的方法:code
class Student(object): ... def set_score(self, score): self.__score = score
須要注意的是,在Python中,變量名相似__xxx__的,也就是以雙下劃線開頭,而且以雙下劃線結尾的,是特殊變量,特殊變量是能夠直接訪問的,不是private變量,因此,不能用__name__、__score__這樣的變量名。有些時候,你會看到以一個下劃線開頭的實例變量名,好比_name,這樣的實例變量外部是能夠訪問的,可是,按照約定俗成的規定,當你看到這樣的變量時,意思就是,「雖然我能夠被訪問,可是,請把我視爲私有變量,不要隨意訪問」。htm
推薦一個解釋比較好的博客對象