Python 面向对象编程
发布日期:2021-05-07 23:05:28 浏览次数:22 分类:精选文章

本文共 1360 字,大约阅读时间需要 4 分钟。

面向对象概念

面向对象(Object-Oriented, OO)是 Python 语言的一大特点。对象在 Python 中被定义为属性与方法的结合体。属性是类中静态的特征,而方法则是类中动态且可被调用的内置函数。

定义对象时,我们需要使用保留字 class 作为变量名称的开头,且首字母为大写字母。类名的小括号内可以指定继承的父类。

例如:

class Mylist(list):    passls = Mylist()ls.append(1)ls.append(6)ls.append(4)ls[1, 6, 4]ls.sort()ls[1, 4, 6]

面向对象的特征

  • 封装:对象具有信息的隐蔽性,对象内的函数是对象的封装。例如,list 类中的内置函数 append
  • 继承:继承是指子类自动共享父类的方法与机制。例如,class MyList(list),MyList 实例化的对象会继承 list 的方法。
  • 多态:不同对象对同一方法有不同的响应。例如:
  • class A:    def fun(self):        print("A")class B:    def fun(self):        print("B")a = A()b = B()a.fun()  # 输出 Ab.fun()  # 输出 B

    面向对象的方法

  • 特殊方法__init____()

    • __init__ 是在类生成时被直接调用,用于初始化对象属性,接受 self 作为参数(可以传递属性)。
    • 例如:
    class Ball:    def __init__(self, name):        self.name = name    def eat(self):        print("%s很爱吃" % self.name)a = Ball("土豆")a.eat()  # 输出:土豆很爱吃c = Ball()  # 会报错,因为 __init__ 缺少参数
  • 属性的私有化

    • 在类中定义属性为私有属性,例如:
    class Person:    __name = "Python"
    • 可以通过 GetName 方法访问私有属性:
    class Person:    __name = "Python"    def GetName(self):        return self.__nameq = Person()q.GetName()  # 输出:Python
    • 注意:Python 的伪私有化机制会将属性名改为 _Classname__attribute,例如:
    class Person:    __name = "Python"q = Person()q.name  # 输出:AttributeError: 'Person' object has no attribute 'name'q._Person__name  # 输出:Python
  • 总结

    • OOA(面向对象分析方法):确定需求或业务的角度,按照面向对象的思想进行分析。
    • OOD(面向对象设计方法):对 OOA 分析结果进行规范化整理,以便被 OOP 接受。
    • OOP(面向对象编程):一种计算机编程架构,基于对象的原则,程序由单元或对象组成。
    上一篇:Python 面向对象 继承 多重继承 类 类对象 实例对象 绑定
    下一篇:Python 对不存在文件进行保存处理

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月28日 21时33分32秒