喬悟空-CTF-i春秋-Web-Not Found-🙋🏻♂️
阿新 • • 發佈:2020-09-08
面向物件程式設計——Object Oriented Programming,簡稱OOP,是一種程式設計思想。OOP把物件作為程式的基本單元,一個物件包含了資料和操作資料的函式。
資料封裝、繼承和多型是面向物件的三大特點
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))
面向物件的設計思想是從自然界中來的,因為在自然界中,類(Class)和例項(Instance)的概念是很自然的。Class是一種抽象概念,比如我們定義的Class——Student,是指學生這個概念,而例項(Instance)則是一個個具體的Student。
一、定義類
class Student(object):
pass
class後面緊接著是類名,即Student,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。
由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去。通過定義一個特殊的__init__方法,在建立例項的時候,就把屬性綁上去(相當於Java的建構函式)
class Student(object): def __init__(self, name, score): self.name = name self.score = score
注意到__init__方法的第一個引數永遠是self,表示建立的例項本身,因此,在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身。
二、建立例項
建立例項是通過類名+()實現的
bart = Student()
三、訪問限制
如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線__
,在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
了