python下的一些特殊属性(几个实例说明)

时间:2022-11-02 16:45:56

python下的一些特殊属性(几个实例说明)


实例1:

[python] view plaincopy
  1. #-*-coding:UTF-8-*-  
  2.   
  3. class  FirstDemo(object):  
  4.     """ 
  5.         这里是一个doc 
  6.     """  
  7.     a=10   #类属性  
  8.     def  demo(self):  
  9.         """ 
  10.         第一个方法 
  11.         """  
  12.         pass  
  13.     def demo2(self):  
  14.         """ 
  15.         第二个方法 
  16.         """  
  17.         pass  
  18. print FirstDemo.__dict__   #打印出FirstDemo类的所有属性和方法,结果为一个字典  
  19. print FirstDemo.__bases__  #类的基类  
  20. print FirstDemo.__doc__    #类的docstring  
  21. print FirstDemo.__name__   #类的名字  
  22. print FirstDemo.__module__ #类所在模块,如果是主文件,就是__main__  
  23.   
  24.   
  25. print FirstDemo().__class__    #类的类型<class '__main__.FirstDemo'>  
  26. print FirstDemo().__module__   #实例类型所在模块  
  27. print FirstDemo().__dict__     #对象的字典,存储所有实例成员信息  


 实例2:

[python] view plaincopy
  1. #-*-coding:UTF-8-*-  
  2.   
  3. class  FirstDemo(object):  
  4.     b=100   #类属性  
  5.     def __init__(self):  
  6.         FirstDemo.b=200  
[python] view plaincopy
  1.     def __repr__(self):  
  2.         return "repr方法"  
  3.     def __str__(self):  
  4.         return "str方法"  
  5.     def  demo(self):  
  6.         print FirstDemo.b  
  7. a=FirstDemo()  
  8. print a.__repr__()  
  9. print a.__str__()  
  10. print "--------"  
  11. a.demo()  


结果:

repr方法
str方法
--------
200

序号 目的 所编写代码 Python 实际调用
初始化一个实例 x = MyClass() x.__init__()
字符串的“官方”表现形式 repr(x) x.__repr__()
字符串的“非正式”值 str(x) x.__str__()
   
   

最后打印的b的值为200,是因为__init__()方法的调用发生在实例被创建之后。

实例3(对象属性的操作):

[python] view plaincopy
  1. #-*-coding:UTF-8-*-  
  2.   
  3. class  FirstDemo(object):  
  4.     b=100   #类属性  
  5.     def __init__(self):  
  6.         FirstDemo.b=200  
  7.     def __repr__(self):  
  8.         return "repr方法"  
  9.     def __str__(self):  
  10.         return "str方法"  
  11.     def  demo(self):  
  12.         print FirstDemo.b  
  13. a=FirstDemo()  
  14. a.temp=500   #为对象添加一个属性  
  15. print a.__dict__  #查看对象的实例属性字典  
  16. print dir(a)   #列出实例的属性和方法集合  
  17. del a.temp  #删除对象中的temp属性  
  18. print a.__dict__  
  19. print dir(a)