Python - 魔法方法
object.__dict__ 提供了一个字典。可以打印任何实例的每个属性信息。
>>> class Person(object):
... def __init__(self,name,age,job):
... self.name = name
... self.age = age
... self.job = job
...
>>> p = Person('xiaoming',18,'Java')
>>> p.__dict__
{'name': 'xiaoming', 'age': 18, 'job': 'Java'}
__class__: 返回对象的类型信息
__bases__: 返回类对象的所有超类,是一个元组类型
>>> class A:
... pass
...
>>> class B:
... pass
...
>>> class C(A,B):
... pass
...
>>> C.__bases__
(<class '__main__.A'>, <class '__main__.B'>)
__new__
:
- 使用 类名() 创建对象时,Python的解释器会首先调用__new__ 方法为对象分配内存空间
- new 是一个由object 基类提供的内置静态方法,主要作用由两个
1.为对象分配内存空间 2. 返回对象的引用- Py解释器获得对象的引用后,将引用作为第一个参数,传递给__init__方法
- 重写__new__ 方法一定要 return super().new(cls),否则解释器得不到分配了空间的引用,就不会调用对象的初始化方法
- new 是一个静态方法,在调用时要主动传递cls参数
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15777185.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!