【python】类和对象

一、对象

对象=属性+方法

属性是静态的,方法是动态的(函数)



二、面向对象

oo:object oriented  面向对象

特征:

1、封装:信息隐蔽技术(只是调用,不知道内部实现机制)

2、继承:子类自动共享父类之间数据和方法的机制

3、多态:不同对象对同一方法响应不用的操作。各种动物(对象)对于跑(方法)这个动作会有不同的反应(多塔)


OOA:面向对象分析

OOP:面向对象编程

OOD:面向对象设计


三、类和对象

类进行实例化构成对象

工厂的模具(类)正式生产成成品(对象)

图纸(类)投入生产成房子(对象)

同一个类生成无数个对象,对象很相似,都是来源于同一个类的属性和方法。


四、self

self:相当于C++里的this指针

当一个对象的方法被调用时,对象会将自身作为第一个参数传递给self,这时python就知道是哪个对象调用方法了。


五、魔法方法 

python天生拥有一些神奇的方法,可以给你的类增加魔力的方法。如果你的对象实现了这些方法中的某一个,那么这个方法就会在特殊的情况下被python调用,而这一切都是自动发生的。

1、方法会被双下划线包围

2、最简单的魔法方法:__init__(self):构造方法

只要实例化一个对象的时候,那么这个方法就会在对象被创建的额时候会自动被调用

3、实例化对象的时候是可以传入参数的,会自动传入__init__方法中。可以重写这个方法来自定义对象的初始化操作。

__init__(self,param1,param2)


六、公有&私有

定义私有变量:变量前加双下划线 

名字改编/重整name mangling,可被外部间接访问

访问方法:1、定义一个方法,从内部拿到私有的变量;

 2、双下划线其实是_类名_变量名,所以可使用 对象._类名_变量名 来访问 


七、继承

class DerivedClassName(BaseClassName): 

括号前:子类,子类可以继承父类的所有属性和方法

括号里:基类、父类或超类


注意:如果子类中定义于父类同名的方法或属性,则会自动覆盖父类对应的方法或属性

解决方案:1、调用未绑定的父类方法

 2、使用super方法:super.需要的父类的函数()  

多重继承:

class DerivedClassName(Base1,Base2,Base2):

避免使用,会出现不可预见的bug

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值