python類的調用、繼承


類的執行過程:先進行類的實例化,再進行內置函數(構造方法)的執行,執行調用的方法,再執行類的析構方法。

類屬性:當對象有共同屬性時,將其撥離出來,屬於類,直接使用類名調用(類名.類屬性)

面向對象的三特性:封裝、繼承、多態;

一、封裝

調用被封裝的內容實例:

class Person():

    # 類的公共屬性
    gj='中國'
# 創建構造方法,根據類創建對象自動執行
    def __init__(self,name,age,fight):
        self.name=name
        self.age=age
        self.fight=fight
# 創建類的方法,即函數,類創建函數在括號中要帶"self
    def caocongzhandou(self):
        self.fight=self.fight-200

    def info(self):
        print('{0},{1},{2},草叢戰斗力:{3}'.format(self.name,self.age,self.gj,self.fight))

    def ziwoxiulian(self):
        self.fight=self.fight+100

    def info1(self):
        print('{0},{1},自我修煉:{2}'.format(self.name,self.age,self.fight))


#根據類Person創建對象per1,將“'小明','18歲',1000”封裝到Per1name,age,fight屬性中
Per1=Person(u'小明','18歲',1000)
# 根據類Person創建對象per2,將“'小花','20',800”封裝到Per1name,age,fight屬性中
Per2=Person(u'小花','20',800)

Per1.info()
Per2.info1()
# 再執行一次程序
Per1.info()
Per2.info1()

 

二、類的繼承

下面的例子將動物的共性都放到父類中,子類中展示每個動物特有的習性,最后每個子類再調用公共的習性

 

#!/usr/bin/env python
#coding:utf-8

#author:wandering


class Animal():

    def __init__(self,name):
        self.name=name
    # 動物的共性都放到父類中
    def eat(self):
        print('{0}吃'.format(self.name))
    def drink(self):
        print('{0}喝'.format(self.name))
    def la(self):
        print('{0}喝'.format(self.name))

    # 子類貓繼承動物習性
class Cat(Animal):
    # 子類創建構造方法
    def __init__(self,name):
    # 子類繼承父類的屬性
        Animal.__init__(self,name)
    # 子類特有的習性
    def cry(self):
        print(u'{0}喵喵叫'.format(self.name))


# 子類狗繼承動物習性
class Dog(Animal):
    # 子類創建構造方法
    def __init__(self,name):
    # 子類繼承父類的屬性
        Animal.__init__(self,name)
    # self.practise=practise

    def cry(self):
        print(U'{0}汪汪叫'.format(self.name))

# 對象C1賦值
C1=Cat(u'我家的小貓')
# 對象C1調用父類的方法
C1.eat()
C1.drink()
C1.la()
C1.cry()
# 對象D1賦值
D1=Dog(u'隔壁老王家的小狗')
# 對象D1調用父類的方法
D1.cry()
D1.eat()
D1.drink()
D1.la()

 

python的繼承順序:

1.從左到右:

當子類繼承N個父類,父類中有同樣的方法,當子類調用父類方法時,順序是從左到右。

2.從下到上:

當子類繼承父類之后,子類又重寫了父類的方法,調用時先調用子類的方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM