- 面向对象 - 断浪狂刀忆年少 - 博客园 (cnblogs.com)
- 通过函数实现面向对象编程
![]()
- 面向对象的思维内涵
- 所有属性和技能都待在自己的角色模板中--------可读性好
- 能够更加方便得为角色添加技能或属性----------可扩展性好
- class 类名:
- 类内定义的变量为类的属性,查看类的属性如Car.color
- 类属性和实例属性的区别
- 使用,类属性可以通过类也可以通过实例调用,实例属性只能实例调
- __init__(self, , , )初始化方法
- 在实例化的同时就会调用,实例化的同时会开辟一块内存
- __new__创造空间给对象,然后__init__初始化
- 通过对象.方法()调用 = 类.方法(对象),但是推荐用对象调用
- 对象名
- 静态变量
- 用对象修改静态变量只要用到了赋值,相当于在自己的对象空间内新建属性,并不能修改类空间的内容
- 组合
- 什么是面向对象
- 内置的类
- str int bool list dict tuple set
- 面向对象三大特性----类的三大特性面向对象的三大特性 - 断浪狂刀忆年少 - 博客园 (cnblogs.com)
- 封装
- 狭义上的封装
- 私有化方法和属性
- 在类的内部,实例变量(对象属性)可以变成私有的,类的变量可以变成私有的,实例的方法可以变成私有的,一旦变成私有的就只能在类的内部使用
- 多态
- 多态的好处
- 在函数内调用对象的某个方法a.fun(),返回结果
- 由于多态性质,传入对象不同,函数func的运算过程和返回结果不同
- 思考了一下,反射结合多态应该很实用,定义一个数据类,增删改查四个子类继承数据类,传入一条SQL,判断类型,然后实例化对应的类,反射写入SQL到对象属性,这时定义一个调用数据库的方法,传入的对象不同,就可以做增删改查
- 面向对象的三个装饰器
- '@staticmethod'
- 声明类的方法是静态方法,不用传任何默认参数,不实例化,类名/对象+方法名可以直接调用
- 与类和对象没什么直接关系的方法,不获取类也不获取 对象,可以改写到类外面用普通函数
- '@classmethod'
- 装饰当前的方法为类方法,默认参数cls,cls指的就是当前类
- 在方法中像获取实例相关的数据,比如获取实例本身,或者实例的属性,或者调用其他实例方法,用实例方法
- 在方法中获取类相关的数据,比如类属性,类本身,其他的类方法
- 类直接调用实例方法的问题
posted @
2023-05-13 19:55
3notblv
阅读(
29)
评论()
收藏
举报