流畅的python笔记 (一) 1.python的数据模型
1.C# GC2.列表(list)的深浅拷贝解析
3.流畅的python笔记 (一) 1.python的数据模型
4.python中的多态表现方法5.CreateEvent函数6.流畅的python笔记 (二) 2.序列构成的数组7.委托和事件的区别python的数据模型:python风格的设计思想完全体现在Python的数据模型上,而数据模型所描述的API,为使用最地道的语言特性来构建你自己的对象提供了工具。数据模型其实是对 Python 框架的描述,它规范了这门语言自身构建模块的接口,这些模块包括但不限于序列、迭代器、函数、类和上下文管理器。
一些特殊方法(双下方法 or 魔术方法):如__getitem__ 等。这些特殊方法名能让你自己的对象实现和支持以下的语言架构,并与之交互:
-
• 迭代
-
• 集合类
-
• 属性访问
-
• 运算符重载
-
• 函数和方法的调用
-
• 对象的创建和销毁
-
• 字符串表示形式和格式化
-
• 管理上下文(即 with 块)
特殊方法的使用:
注:特殊方法的存在是为了被 Python 解释器调用的,你自己并不需要调用它们
- 如内置函数len(),在使用时,如果参数是自定义类型,那么它会调用由你实现的__len__()方法,而如果是内置类型,那么 CPython 会抄个近路,__len__ 实际上会直接返回 PyVarObject 里的 ob_size 属性。
- 通过内置的函数(例如 len、iter、str,等等)来使用特殊方法是最好的选择。这些内置函数不仅会调用特殊方法,通常还提供额外的好处,而且对于内置的类来说,它们的速度更快。
- 也不建议自己随意想当然地添加特殊方法,可能会有冲突
举个栗子:一个 Vector 类的实现,在类中自定义实现了如下特殊方法:__repr__、 __abs__、 __add__ 和 __mul__
当使用向量对象进行 + * abs 等运算时,python解释器会自动调用这些特殊方法
更多全面的特殊方法,可以看官方文档:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示