知識點:類和實例函數
面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類 是抽象的模板,好比Student類,而實例是根據類建立出來的一個個具體的「對象」,每一個對象都擁有相同的方法,但各自的數據可能不一樣。 仍以Student類爲例,在Python中,定義類是經過class關鍵字:對象
class Student(object): pass繼承
說明:class後面緊接着是類名,即Student,類名一般是大寫開頭的單詞,緊接着是(object),表示該類是從哪一個類繼承下來的(即超類),繼承的概念咱們後面再講,一般,若是沒有合適的繼承類,就使用object類,這是全部類最終都會繼承的類。內存
定義好了Student類,就能夠根據Student類建立出Student的實例,建立實例是經過類名+()實現的:get
>>> stu1 = Student()模板
>>> stu1 <__main__.Student object at 0x10a67a590class
> >>> Student <class '__main__.Student'>變量
變量stu1指向的就是一個Student的實例,後面的0x10a67a590是內存地址,每一個object的地址都不同,而Student自己則是一個類。 能夠自由地給一個實例變量綁定屬性,好比,給實例bart綁定一個name屬性:object
>>> stu1.name = 'Bart Simpson'方法
>>> stu1.name
>>>'Bart Simpson'
封裝的另外一個好處是能夠給Student類增長新的方法,好比get_grade:
class Student(object):
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'
總結: 類是建立實例的模板,而實例則是一個一個具體的對象,各個實例擁有的數據都互相獨立,互不影響; 方法就是與實例綁定的函數,和普通函數不一樣,方法能夠直接訪問實例的數據; 經過在實例上調用方法,咱們就直接操做了對象內部的數據,但無需知道方法內部的實現細節。