遇見Python(二):面向對象

一、類

創建類:

 class Person():
       pass

創建實例:

variable = Person()

給實例綁定屬性,例如綁定name和age:

   def __init__(self,name,age):
        self.name = name
        self.age = age

案例

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
ba = Person('python',10)
print(ba.name,ba.age)

在類中封裝方法:
添加一個打印的方法printPerson(self)

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age
ba = Person('python',10)

def printPerson(self):
    print(self.name,self.age)

調用該方法

printPerson(ba)

二、私有變量

Python中,在變量前加上兩個下劃線__,即私有變量,相當於Java中private。如下把name設置爲私有,age不變,則name外部不可直接訪問。

 def __init__(self,name,age):
        self.__name = name
        self.age = age

外部如需獲取私有變量__name,可在Person類中定義get_name()方法,相當於Java中的get方法如:

class Person():
    def __init__(self,name,age):
        self.__name = name
        self.age = age
#get方法
    def get_name(self):
        return self.__name
ba = Person('python',10)
print(ba.get_name())

外部如需修改私有變量__name,同樣可在類中定義set_name()方法,相當於java中的set方法,可以看到以下代碼,初始化變量ba的name = python,將ba.set_name = java,最後打印出的結果name值爲”java“,如:

class Person():
    def __init__(self,name,age):
        self.__name = name
        self.age = age
#get方法
    def get_name(self):
        return self.__name
#set方法
    def set_name(self,name):
        self.__name = name

ba = Person("python",1)
ba.set_name("java")
print(ba.get_name())

三、繼承

繼承是指子類繼承父類的特徵和行爲,如有 父類Animal,子類Cat,Cat繼承Animal:
Java版

class Cat extends Animal{
}

Python版

class Cat(Animal):

四、多態

Python中繼承與多態的思想與Java的並無兩樣。
多態是指同一個行爲具有多個不同表現形式或形態的能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章