特殊属性
- __name__ 类,函数,方法的名字
- __module__ 类,函数,方法所在的模块名
- __class__ 类,对象,函数所属的类
所有的函数和方法均属于<class 'function'>def bnm():pass class P: def uo(self):pass print(bnm.__class__) print(P.uo.__class__)
- __bases__ 类的基类元组,顺序为他们在基类列表 中出现 的顺序
class P: def uo(self):pass class M:pass class N:pass class B(N,P,M):pass print(B.__bases__) print(B.__base__)
- __doc__ 类,函数的文档字符串,如果没有定义则为None
- __mro__ 类的mro,class.mro()返回的结果保存在__mro__中
class P: def uo(self):pass class M:pass class N:pass class B(N,P,M):pass print(B.mro())
- __dict__ 类或实例的属性,可写
- __dir__ 返回类或者对象的所有成员列表,dir()函数就是调用__dir__(),如果提供__dir__(),则返回属性列表,否则会尽量从__dict__属性中收集信息
import relevance3
from relevance3 import Animal
class Hix(Animal):
x='cat'
y='uiop'
class Uiz(Animal):
def __dir__(self):
return ['Uiz','bnm'] # must return a list
print('relevance2 Modules\'s name = {}'.format(dir())) # 模块名词空间内的属性
print('relevance3 Modules\'s name from relevance2 = {}'.format(dir(relevance3))) # 指定模块名词空间内的属性
print('object.__dict__ = {}'.format(sorted(object.__dict__.keys()))) # object属性
print('Animal\' dir = {}'.format(dir(Animal)))
print("Hix's dir = {}".format(dir(Hix)))
print('*'*70)
hix=Hix('hixx')
print(sorted(dir(hix))) # hix的属性,Hix类及所有祖先类的属性
print(sorted(hix.__dir__()))
# dir()的等价,近似如下,__dict__字典中几乎包括了所有属性
print(set(hix.__dict__.keys()) | set(hix.__class__.__dict__.keys()) | set(object.__dict__.keys()))
print('Uiz\' dir = {}'.format(dir(Uiz)))
uiz=Uiz('uiop')
print(dir(uiz))
print(uiz.__dict__)
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律