python中的面向对象简介

面向对象

  • python语言是一门面向对象编程语言,
    • 面向对象语言编程关注的是对象,而不是注重过程,对于面向对象来说,一切皆对象
    • 面向对象的思想就是:将所有功能统一保存到对应的对象中,要使用其中的某一个功能的时候,直接找到对应的对象即可
    • 这种编码方式比较容易阅读,并且易于复用
    • 但是编写的过程中不太符合常规的思维,编写相对麻烦
    • 类也是一个对象,类就是用来创建对象的对象
    • 我们也称对象是类的实例
    • 如果多个对象是通过一个类创建的,我们称这些对象是一类对象
    • 我们可以向对象在添加变量,对象中的变量称之为属性
    • 语法:对象.属性名 = 属性值
  • 类的定义
    • 类和对象都是现实生活在事实的抽象
    • 事物包含俩部分
      • 1、数据(属性)
      • 2、行为(方法)
    • 调用方式:对象.方法名()
    • 方法调用与函数调用的区别:
      • 如果是函数调用,调用时有几个形参,就会传递几个实参。
      • 如果是方法调用,默认传递一个参数,所有方法中至少要有一个形参。
    • 属性和方法
      • 类中定义的属性和方法都是公共的,任何该类实例都可以访问
      • 属性和方法的查询流程
        • 当调用一个对象的属性时,解析器会在当前的对象中寻找,是否含有该属性
        • 如果有,则直接返回当前对象的属性值。
        • 如果没有,则去当前对象的类中去寻找,如果有,就返回对象的属性值。如果类中也没有就会报错。
      • 类对象和实例对象中都可以保存属性(方法)
        • 如果这个属性是所有的实例共享的,则应该保存的类对象中
        • 如果这个属性是某个实例独有的,则保存到实例对象中
        • 一般情况下,属性保存到实例对象在,而方法需要保存到类对象中
      • self
        • 相信这个属性都是不陌生了
        • self在定义时需要定义,但是在调用时会自动传入
        • self的名字并不是规定死的,但是最好还是按照约定的是用self
        • self总是指调用时的类的实例
  • 面向对象三大特性: 继承、封装、多态
    • 继承
      • 通过继承我们可以使一个类获取到其他类中的属性和方法
      • 在定义类时,可以在类名后面的括号中指定当前类的父类(超类、基类)
      • 继承提高了类的复用性,让类与类之间产生关系。有了这个关系,才有了多态的特性
    • 封装
      • 面向对象对象三大特性之一
      • 封装的原因:增强数据的安全
        • 1、属性不能随意修改
        • 2、属性不能改为任意值
      • 封装是指隐藏对象在异乡不希望被外部所访问到的属性或方法
      • 我们可以提供一个方法,这个方法是外界可以访问到的属性
        • getter() 获取对象在指定的属性
        • setter()用来设置对象指定的属性
      • 使用封装的确增加了类定义的复杂程度,但是这种方法确保了数据的安全
        • 1、隐藏属性名,是调用者无法随意修改对象中的属性
        • 2、增加了getter()和setter()方法,很好的控制属性是否是只读的
        • 3、但是封装不是绝对的,只是修改了属性名称,并不是外界完全无法访问
      • 可以为对象的属性使⽤双下划线开头 __xxx。双下划线开头的属性,是对象 的隐藏属性,隐藏属性只能在类的内部访问,⽆法通过对象访问
      • 其实隐藏属性只不过是Python⾃动为属性改了⼀个名字 --> _类名__属性 名
      • 这种⽅式实际上依然可以在外部访问,所以这种⽅式我们⼀般不⽤。⼀般我 们会将⼀些私有属性以_开头
      • ⼀般情况下,使⽤_开头的属性都是私有属性,没有特殊情况下不要修改私有 属性
      • property装饰器
        • 语法:@property,可以将方法转换为同名的只读属性,可以与所定义的属性配合使用,这样可以放在属性被修改。
    • 多态
      • 面向对象三大特性之一
      • 字面理解就是多种形态
      • 一个对象可以从不同形态去呈现
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WSZFSNFK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值