文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python3 系列之 面向对象篇

2023-01-30 23:33

关注

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

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 这种高级语言,虽然很多地方从语法上可以不用面向对象的思想,但是对于项目构建来说,面向对象是基本要求,这样做显然是很有必要的。

相关参考

  • Python 入门教程:【草根学 Python (基于Python3.6)】
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯