关于python的面向对象编程

先写上代码,有代码才好理解:

#filename:classdemo.py

class test:
'''just person'''
a=1
b=2
c=0
def __init__(self):
'''just person's init'''
test.c=test.c+1 def aadnb(self):
return self.a+self.b def __del__(self):
test.c=test.c-1 p=test()
print test.c
p.a=5
p.b=7
p1=test()
print test.c
b=p1.aadnb()
a=p.aadnb()
print a
print b
del p
print test.c print test.__doc__
print test.__init__.__doc__
print p1

1,p 和p1都是test 类的实例化

2,__init__是对类的初始化操作,这个方法是实例化类的时候自动运行的

3,当没有对p.a 和p.b 进行赋值的时候,p.a和p.b都是引用test类的属性,赋值以后,实例属性会强制屏蔽掉类属性,即引用的是实例属性。

4,类的实例删除的时候,自动执行类的__del__方法

5,可以分别访问类的__doc__属性和方法的__doc__属性。

7,self关键字相关于是说自己,实例本身,一般都是类中方法的第一个参数。

8,实例中引用实例属性,要用self.,也就是实例的域空间,引用类属性要用test.,也就是类的域空间

(开始就理解了这么多,看了一个继承多态 ,看得头疼,明天吧,个人一直对向象对象有恐惧感,不过python的向象对象感觉比C++,java,好理解很多)

上一篇:Scala 深入浅出实战经典 第67讲:Scala并发编程匿名Actor、消息传递、偏函数解析


下一篇:使用 JS 实现文字上下跑马灯