python面向对象

Posted cecelia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python面向对象相关的知识,希望对你有一定的参考价值。

 1 class Dog(object):
 2     n=123              
 3     name=类变量name
 4     n_list=[]
 5     
 6     def __init__(self,name,life_value=100):  #传参数
 7         self.name=name      
 8         self.__life_value=life_value   
 9     
10     def __del__(self):
11         print("%s dead"% self.name)
12 
13     def show_status(self):
14         print("test 私有变量调用 name:%s,life_value:%s" %(self.name,self.__life_value))
15 
16     def bulk(self):
17         print("%s is wang wang wang" % self.name)
18 
19 d1=Dog("huanhuan")    
20 d1.bulk()
21 print("d1:",d1.name,d1.n)
22 d1.n_list.append(d1,) 
23 d1.wierd=True            #
24 print("d1:",d1.name,d1.n,d1.n_list,d1.wierd)
25 d1.show_status()
26 del d1.n                 #
27 
28 del d1            
29 
30 d2=Dog(lele)
31 d2.n_list.append(d2,)
32 print("d2:",d2.name,d2.n,d2.n_list)
33 
34 print("Dog:",Dog.name,Dog.n,Dog.n_list)

构造函数:实例化过程中做一些初始化的工作,传参。

def __init__(self,name,life_value=100):  #传参数
 7         self.name=name      
 8         self.__life_value=life_value   

 调用:d1=Dog(‘huanhuan‘)   

展开来看:

d1.name=‘huanhuan‘

d1.__life_value=100

 

析构函数:在实例释放、撤销时,做收尾工作,如断开数据库连接,关闭已打开的临时文件

def __del__(self):
11         print("%s dead"% self.name)

28 del d1  #删除d1实例,(门派号没了,房子可以拆了),销毁对象,执行析构函数
而程序中没有写del d2,所以d2对象析构函数的调用是在整个程序结束时。

私有属性、私有方法:外部不能直接调用,必须通过类的其他方法才能调用。
8         self.__life_value=life_value  (前面有__)
调用:
13     def show_status(self):
14         print("test 私有变量调用 name:%s,life_value:%s" %(self.name,)
不能直接在外部print(self.__life_value)会报错
#私有方法   
def __sleep(self): print(私有方法:%s is sleeping %self.name) #调用私有方法 def show_status(self): self.__sleep()

 

 












以上是关于python面向对象的主要内容,如果未能解决你的问题,请参考以下文章

python之路之前没搞明白4面向对象(封装)

Python面向对象学习之八,装饰器

python:第二部分:面向对象:面向对象object orinted

面向面试编程代码片段之GC

Python 面向对象

面向对象编程其实很简单——Python 面向对象(初级篇)