类的特殊成员方法
类的成员除了有类变量、实例变量、方法外,还有一些特殊的成员方法,下面列举些比较重要的特殊成员:
类的特殊成员方法
1、__doc__: 表示类的描述信息,
大家都知道,在开发中应该在代码中多加注释,来增强代码的可读性。用__doc__就可以查看函数或类的描述信息。
1 2 3 4 5 6 7 8 9 10 11 | def test(): ''' this is a test function ''' pass class ClassTest( object ): ''' this is a class method ''' print test.__doc__ print ClassTest.__doc__ |
2、__module__和__class__
__module__ 表示对象所在的模块
__class__ 表示对象所在的类是什么
3、__dict__: 查看类或对象中的所有成员
如果是类直接调这个方法表示打印类中的类变量、类方法、类的特殊方法等,但不可打印实例变量。
如果是对象调用这个方法的话,表示打印对象的实例变量,但不可打印类中的类变量、类方法、类的特殊方法等。
这个方法很重要,一定要多掌握,用此方法打印的结果为字典。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class ClassTest( object ): ''' this is a class method ''' commity_data = 123 def __init__( self ,name,age): self .name = name self .age = age def hello( self ): pass def hi( self ): pass user_info = ClassTest( 'goser' , 23 ) print ClassTest.__dict__ print user_info.__dict__<br><br>输出结果为: |
{'__module__': '__main__', 'hi': <function hi at 0x00BE5430>, '__dict__': <attribute '__dict__' of 'ClassTest' objects>, 'hello': <function hello at 0x00BE54B0>, '__weakref__': <attribute '__weakref__' of 'ClassTest' objects>, '__doc__': '\n this is a class method\n ', '__init__': <function __init__ at 0x00BE5470>, 'commity_data': 123}
{'age': 23, 'name': 'goser'}
4、__call__: 如果类中定义了此方法的话,那么在生成类对象后,就可以在类对象加上()就可以直接调用__call__()方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class ClassTest( object ): ''' this is a class method ''' commity_data = 123 def __init__( self ,name,age): self .name = name self .age = age def hello( self ): pass def hi( self ): pass def __call__( self , * args, * * kwargs): print 'you input pattern is %s|%s:' % (args,kwargs) user_info = ClassTest( 'goser' , 23 ) user_info( 1 , 2 , 3 ,sex = 'male' ) 输出结果为: you input pattern is ( 1 , 2 , 3 )|{ 'sex' : 'male' }: |
5、__str__:如果类中定义了此方法,那么在打印对象的时候默认打印的是此方法的返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class ClassTest( object ): ''' this is a class method ''' commity_data = 123 def __init__( self ,name,age): self .name = name self .age = age def hello( self ): pass def hi( self ): pass def __call__( self , * args, * * kwargs): print 'you input pattern is %s|%s:' % (args,kwargs) def __str__( self ): return 'the class commity pattern is %s:' % self .commity_data user_info = ClassTest( 'goser' , 23 ) user_info( 1 , 2 , 3 ,sex = 'male' ) print user_info 运行结果为: you input pattern is ( 1 , 2 , 3 )|{ 'sex' : 'male' }: the class commity pattern is 123 : |
6、__getitem__、__setitem__、 __delitem__
表示用以引用索引操作,比如字典,以上分别表示获取、设置、删除数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?