面向对象编程知识点
特性
class
object
封装
继承
多态
语法
调用函数 --》 执行 --》返回结果
r1 = Role.__init__() return x342423
r1 = Role(r1,"A","Police","15000")
r1.name = "A"
r1.role = "Poice"
r1.money = 15000
r1.buy_gun() Role.buy_gun(r1)
属性
方法
类变量的用途? 大家共用的属性 ,节省开销
class Person:
cn = "中国"
def __init__(self,name,age,addr,cn="china")
self.name = name
self.cn = cn
p1 = Person(name,age ,addr)
构造函数
析构函数: 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 如关闭一些数据库连接,关闭打开的临时文件
私有方法,私有属性
类变量
实例变量
封装
继承
py2 经典类是按深度优先来继承的,新式类是按广度优先来继承的
py3 经典类和新式类都是统一按广度优先来继承的
多态
一种接口,多种实现
类
属性
实例变量
类变量
私有属性__var
方法
构造方法,
析构函数
私有方法
对象:实例化一个类之后得到的对象
封装
把一些功能的实现细节不对外暴露
继承
继承 ,组合
代码的重用
单继承
多继承,
2.7 经典类,深度优先, 新式类,广度优先
3.x 均是广度优先
class Foo(object):
def __init__(self,name,age,sex,salary,course):
self.salary = salary
self.course = course
多态
接口重用, 一种接口,多种实现
静态方法
只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
类方法
只能访问类变量,不能访问实例变量
属性方法
把一个方法变成一个静态属性
反射
hasattr(obj,name_str) , 判断一个对象obj里是否有对应的name_str字符串的方法
getattr(obj,name_str), 根据字符串去获取obj对象里的对应的方法的内存地址
setattr(obj,'y',z), is equivalent to ``x.y = v''
delattr
异常
try :
code
except (Error1,Erro2) as e:
print e
except Exception :抓住所有错误,不建议用
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类