编程思想
面向对象
以对象为核心,根据需求 实现一个个对象
面向过程
以动作为核心 根据需求 以流水账的形式进行书写
类与对象的关系
抽象的概念
类就是对象的模板 图纸
对象就是客观事物在人脑中的主观反应 小孩--动物园
类是对象共性的抽象 猫 狗 马 -- 动物的特点 会动,会跑,会叫
类的创建
class 类名(首字母大写):
pass
class A:
name = A:
tedian1 = huijiao
tedian2 = huipao
tedian3 = huidong
对象的创建
1. 使用类进行创建
类名() -- > 对象
一个类可以创建多个对象
属性与方法访问
使用类对象.属性名可以访问类属性
使用实例对象.属性名同样可以访问类属性
注意:
如果使用类去调用方法的时候需要手动给self传一个实参(实例对象)
属性
1. 属性
在类的内部 方法的外部 以属性名=值的形式存在
所有的实例对象都可以访问类属性,
一旦类属性发生改变,所有的实例对象访问时都会发生改变
如果使用实例对象修改类属性,则类属性被实例属性所覆盖,实例属性发生改变,不会影响其他的实例对象,
方法
其实是通过函数来实现的
该函数绑定到了当前的类中,使用的时候使用类名/实例对象名.函数名() 来调用
组合
一个类的属性可以是另一个对象
补充
公私有问题
1.属性方法名前没有任何的下划线 :公有成员
2.前后加两条下划线:魔法成员
__init__()
所有魔法成员都会被系统自动调用 不需要手动执行
3.前只有一条下划线
受保护的
只有在当前文件或者其他文件的子类中可以访问
4.前面加两条下划线
私有方法私有属性
只能本类进行访问 (伪私有化)
python 垃圾回收机制 主要是引用计数为主,分代回收为辅助,标记清除
引用次数+1的四种情况:
1.对象被创建 a = 10
2.对象被引用 b = a
3.对象被作为参数,传入到函数当中 fun(a)
4.对象作为一个元素,储存到了容器当中 l=[a,1]
引用次数-1的情况:
1.当该对象的别名被销毁的时候?对象引用次数,-1
2.当该对象的引用被另一个对象引用 对象的引用此数-1
3.一个对象离开它的作用域 引用次数-1
4.该对象从容器中被删除时,或者容器被销毁