python学习-面向对象

一:面向对象

面向对象的编程,把一组数据结构和处理它们的方法组成对象,把相同行为的对象归为类,将类封装,隐藏其中细节,通过继承实现类的特化和泛化,通过多态实现基于对象类型的动态分派。

1.类和对象
  • 两者的关系,就好比植物和兰花,动物和狗的关系一样,类是对象的模板,对象是类的实例。在面向对象的编程中,把一切东西看成对象,对象有自己的属性(数据结构)和行为(方法)。对象是独一无二的(就像世界上没有两片相同的叶子),但是对象一定属于一个类,把一堆具有共同特征的对象的特征(属性)和动态特征(行为)都提取出来,可以定义出一个叫做类的东西。
  • 定义类:
    用class关键字来定义类。类中可以定义方法在这里插入图片描述
  • 创建和使用对象
    定义了类,开始创建一个对象在这里插入图片描述
  • 访问权限
    对于其他的高级语言,C++等。在给对象(man)绑定的属性(name,age)要规定访问权限,可以设置成私有的(private),不要外界访问,那么我们在python用"__"两个下划线为开头来设置其私有属性的。
2:面向对象的支柱

三大支柱:封装、继承、多态。

  • 封装:就是将所有的要执行的细节都隐藏,只留下接口调用。我们不用考虑实现的细节,只要知道方法的名称和参数就行。
  • 继承:一个类将另一个类的属性和方法直接继承下来,使其也有该类的属性和方法。这个就相当于学生和人的关系。手机和电子产品的关系一样。将继承的那个类称为子类,被继承的类叫做父类。
  • 多态:子类继承父类的方法后,在其基础上给出新的版本,这个叫做重写,在调用经过子类重写的方法时,不同的子类对象表现不同的行为。
装饰器 @property

在类中方法的访问权限问题上,不建议将属性设置为私有的,但直接public也不行,不够安全。那么如果想访问属性可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作。如果要做到这点,就可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便。
下例中对age设置了getter和setter两种,既可以修改也可以访问,对name只设置了getter,就只能访问,不能修改。在这里插入图片描述

静态方法和类方法
  1. 在类中定义的方法中对象可以使用的方法是对象方法,也有的方法并不是对象方法,我们就需要用静态方法来解决。
    定义静态方法:@staticmethod 在定义方法上一行加上。
@staticmethod
def YY():
   函数体
  1. 类方法:类方法的第一个参数约定名为cls
    定义:它表示的是当前类相关的信息的对象,通过这个参数可以获得 类相关的信息并可以创建出类的对象。
@classmethod
def YYY(cls):
    函数体
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值