• 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中的集合
    ubuntu14.04下 安装matlabR2015b遇到的一些问题及其解决方法
    matlab的一些关于块分类的函数~~~
    20145207 《Java程序设计》第二周学习总结
    20145207 调查问卷
    20145207 《Java程序设计》第一周学习总结
    10、装饰者模式
    9、观察者模式
    8、迭代器模式
    7、适配器模式
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/8410531.html
Copyright © 2020-2023  润新知