第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

python 面向?qū)ο?2

標(biāo)簽:
Python

python 面向对象02

面向对象三大特性:封装、继承、多态


封装:隐藏实现细节,对外提供方法调用


继承:代码的重用性


多态:同一个方法,不同实例对象调用,结果不一样


python 支持多继承(一个类,有多个父类)

说明:当不同的父类中出现同名方法时,识别靠前类中的方法。


所有类默认继承:object 类


定义子类时,必须调用父类的构造函数。


class Person:


    def __init__(self, name, age):

        self.name = name

        self.__age = age


    def say_age(self):

        print(self.name, "的年龄是:", self.__age)



class Student(Person):

    def __init__(self, name, age, score):

        self.score = score

        Person.__init__(self, name, age)  # 构造函数中包含调用父类构



s1 = Student("张三", 15, 85)

s1.say_age()

print(dir(s1))


继承

子类继承父类所有成员(继承了并不一定能用)


重写

特:重写是在继承的基础之上。没有类之间的继承关系,就没有重写。


重写定义:父类中的方法,子类在调用时发现,无法满足子类需求,子类对该方法进行了重新定义。

class Person:


    def __init__(self, name, age):


        self.name = name

        self.age = age



def say_age(self):

    print(self.name, "的年龄是:", self.age)



def say_name(self):

    print("我是", self.name)



class Student(Person):


    def __init__(self, name, age, score):

        self.score = score

        Person.__init__(self, name, age)  # 构造函数中包含调用父类构造函数



def say_score(self):

    print(self.name, "的分数是:", self.score)



def say_name(self):  # 重写父类的方法

    print("报告老师,我是", self.name)



s1 = Student("张三", 15, 85)

s1.say_score()

s1.say_age()

s1.say_name() # 关注该方法调用,输出的结果


类的继承结构

类.mro()


dir() 查看对象属性


自定义类跟object类对比

class Person:


    def __init__(self, name, age):

        self.name = name

        self.age = age


    def say_age(self):

        print(self.name, "的年龄是:", self.age)



obj = object() # 语法里面是定义了object 类的

print(dir(obj))


s2 = Person("高淇", 18)

print(dir(s2))



重写__str__()方法


class Person:

    def __init__(self, name, age):

        self.name = name

        self.__age = age



def __str__(self):

    return "名字是:{0},年龄是{1}".format(self.name, self.__age)



p = Person("高淇", 18)

print(p)



super()


class A:


    def say(self):

        print("A: ", self)

        print("say AAA")



class B(A):


    def say(self):

        super().say()  # 通过 super()调用父类的方法

        print("say BBB")



b = B()

b.say()


多态


方法被不同对象调用结果不同


class Animal:

    def shout(self):

        print("动物叫了一声")



class Dog(Animal):

    def shout(self):

        print("小狗,汪汪汪")



class Cat(Animal):

    def shout(self):

        print("小猫,喵喵喵")



def animalShout(a):

    if isinstance(a, Animal):

        a.shout()



animalShout(Dog())

animalShout(Cat())


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消