当前位置: 萬仟网 > IT编程>脚本>Python > Python3 系列之 面向对象篇

Python3 系列之 面向对象篇

11  人参与 | 时间:2019-02-11 | 我要评论

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

python 做到胶水语言,当然也支持面向对象的编程模式。

封装

class userinfo(object):
    lv = 5

    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account

    def get_account(self):
        return self.__account

    @classmethod
    def get_name(cls):
        return cls.lv

    @property
    def get_age(self):
        return self._age


if __name__ == "__main__":
    userinfo = userinfo("hippie", 26, 123456)
    print(dir(userinfo))
    print(userinfo.__dict__)
    print(userinfo._age)
    print(userinfo.get_account())
    print(userinfo._userinfo__account)
    print(userinfo.lv)
    print(userinfo.get_age)

继承

class userinfo(object):
    lv = 5

    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account

    @property
    def get_account(self):
        return self.__account


class userinfo2(userinfo):

    @property
    def get_account(self):
        return super().get_account + 10


if __name__ == "__main__":
    a = userinfo("hippie", 26, 123456)
    print(a.get_account)

    b = userinfo2("hippie", 26, 123456)
    print(b.get_account)

    print(isinstance(a, userinfo))
    print(isinstance(a, userinfo2))

多态

class user(object):
    def __init__(self, name):
        self.name = name

    def printuser(self):
        print(self.name)


class uservip(user):
    def printuser(self):
        print("hello vip:" + self.name)


class usergeneral(user):
    def printuser(self):
        print("hello user:" + self.name)


if __name__ == "__main__":
    vip = uservip("hippie")
    vip.printuser()

    vip = usergeneral("jock")
    vip.printuser()

总结

封装、继承和多态是面向对象中的重要思想,对于 python 这种高级语言,虽然很多地方从语法上可以不用面向对象的思想,但是对于项目构建来说,面向对象是基本要求,这样做显然是很有必要的。

相关参考

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com