实例1:
#-*-coding:UTF-8-*-
class FirstDemo(object):
"""
这里是一个doc
"""
a=10 #类属性
def demo(self):
"""
第一个方法
"""
pass
def demo2(self):
"""
第二个方法
"""
pass
print FirstDemo.__dict__ #打印出FirstDemo类的所有属性和方法,结果为一个字典
print FirstDemo.__bases__ #类的基类
print FirstDemo.__doc__ #类的docstring
print FirstDemo.__name__ #类的名字
print FirstDemo.__module__ #类所在模块,如果是主文件,就是__main__
print FirstDemo().__class__ #类的类型<class '__main__.FirstDemo'>
print FirstDemo().__module__ #实例类型所在模块
print FirstDemo().__dict__ #对象的字典,存储所有实例成员信息
实例2:
#-*-coding:UTF-8-*-
class FirstDemo(object):
b=100 #类属性
def __init__(self):
FirstDemo.b=200
def __repr__(self):
return "repr方法"
def __str__(self):
return "str方法"
def demo(self):
print FirstDemo.b
a=FirstDemo()
print a.__repr__()
print a.__str__()
print "--------"
a.demo()
结果:
repr方法
str方法
--------
200
序号 | 目的 | 所编写代码 | Python 实际调用 |
---|---|---|---|
① | 初始化一个实例 | x = MyClass() | x.__init__() |
② | 字符串的“官方”表现形式 | repr(x) | x.__repr__() |
③ | 字符串的“非正式”值 | str(x) | x.__str__() |
| |||
|
|
最后打印的b的值为200,是因为__init__()方法的调用发生在实例被创建之后。
实例3(对象属性的操作):
#-*-coding:UTF-8-*-
class FirstDemo(object):
b=100 #类属性
def __init__(self):
FirstDemo.b=200
def __repr__(self):
return "repr方法"
def __str__(self):
return "str方法"
def demo(self):
print FirstDemo.b
a=FirstDemo()
a.temp=500 #为对象添加一个属性
print a.__dict__ #查看对象的实例属性字典
print dir(a) #列出实例的属性和方法集合
del a.temp #删除对象中的temp属性
print a.__dict__
print dir(a)