1. 程式人生 > 實用技巧 >喬悟空-CTF-i春秋-Web-Not Found-🙋🏻‍♂️

喬悟空-CTF-i春秋-Web-Not Found-🙋🏻‍♂️

面向物件程式設計——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