单例用对象保存起来
单例用对象保存起来
@property装饰器
方法调用--属性调用
但不可以设置
装饰器代替set get
私有方法
对外私有
def __
dir()字典显示函数属性
封装的实现
私有属性/方法
方法没有重载
方法同名会覆盖
为类添加新方法
方法函数也是对象
一切都是对象
__del__
垃圾回收,没人用就删除
???
程序结束调用del
类方法,静态方法
@classmethod
cls--类独有
注意类调用实例方法时不可直接调,类本身时不含有的,只有对应到实例对象才可以调用实例方法,放在类内只是为了方便共享方便调用
静态方法--与类无关的方法
@staticmethod
两种方法不能调用实例方法
调的时候还没有对象
‘在模具里面想吃饼干’
类属性类方法--class下面,直接属于类
与实例属性实例方法不同--在init内
1.模具对象没有实例属性,但实例方法在模具对象之中
2.体会类创建的过程,实例对象创建的过程
类对象
1.type数据类型相当于模具对象
通过模具对象生产其他对象
实例方法--难点
1.方法内含self也就相当于将给予对象方法
2.a.say_score()--- 方法是共享的
计算机看到的是Student.say_score(a)传入a对象标签地址
名义上方法是属于对象的,但计算机是通过模具通用方法传入对象地址输出方法
方法都是通用的,只有对应的self地址不同
3.dir--获取对象属性及方法
obj.__dict__获取属性字典
pass先占个地儿
isinstance对象是否为另一个对象实例对象
建立类时在内存中建立一个类对象type
模具
一、Student(‘于承泽’, 18)--建立一个新的对象
1.new方法建立新的对象
2.init初始化对象
3.具备id--123,type--class, values--属性与方法
二、ycz = Student(‘于承泽’, 18)
把ycz这个标签赋予对象--123也是标签地址
三、内部调用时使用self相当于例用地址id去调用
外部调用通过标签--实例对象去调用
del 删除
方法也是属性
__init__
注意initial只是初始化对象--给实例属性赋值
__new__
才是创建对象
id,type,values
不加self就是形参,加了就是对象的属性
类--模具--也是对象
属性放到方法里
传的参数与实例参数
1.类名就代表里面初始化方法
self的理解
默认把self的地址传入
学知识先熟悉结构
简单数据--复杂数据
(列表,数组,结构体(年龄,名字,职业),对象(计算方法来操作数据))
**对象--把数据,和处理数据的方法放到一起
处理方式
对象
1.面向对象是一种处理问题思维,处理问题的方法
选取合适的对象能够更好的处理复杂问题
2.对象产生的本质就是为了把数据与对应处理数据的方法放到一起
面向过程--动词--步骤引导,,比如开车小规模程序
面向对象--名词--对象引导,比如造车,设计者的思维
1.车是什么组成的?先造什么后造什么,拆分成一个个物体
2.在具体造的时候,还是要过程造轮胎先干什么后干什么
宏观上对象把握,微观上过程把握
设计者与 执行者
思维上的转变
什么步骤能解决这个问题到什么东西组合起来能解决这个问题,再到每个东西的实现步骤
做这件事要建立什么???
找变量规则
local
嵌套空间
g--全局变量
b--build in内
变量--使用前赋值
del 删除变量--删除标签
垃圾回收--对象没人用,对象就会被回收
标识符
1.大小写
2.字母、下划线开头
3.避免双下划线
类命名--驼峰
变量存储的是地址
栈与堆
栈--变量
堆--对象--一个个内存卡
python为动态类型语言
1.变量无需申明类型
因为对应堆是含有type的
2.对象是含有类型的--对应堆
只支持该类型的操作
对象--内存块,存特定的值
id--type--value(print)
id--地址的概念
a--给内存块标签