`

python面向对象编程小结

 
阅读更多

参考:http://sucre.iteye.com/blog/680101

 

 

一、类基础

1、类的定义

class <类名>:

    <其他语句>

class <类名>(父类名):

    <其他语句>

Python代码   收藏代码
  1. >>> class human:  
  2. ...     age=0  
  3. ...     sex=''  
  4. ...     name = ''  
  5. ...  
  6. >>> class student(human):  
  7. ...     school = ''  
  8. ...     number = 0  
  9. ...     grade = 0  
  10. ...  
  11. >>>   

 

2、类的使用

如果直接使用类名修改其属性,那么将影响已经实例化的对象。

 

Python代码   收藏代码
  1. >>> class A:  
  2. ...     name = 'A'  
  3. ...     num = 2  
  4. ...  
  5. >>> A.name  
  6. 'A'  
  7. >>> a = A()       #实例化a对象  
  8. >>> a.name  
  9. 'A'  
  10. >>> A.name = 'B'  
  11. >>> A.name  
  12. 'B'  
  13. >>> a.name  
  14. 'B'  
  15. >>>   

 

二、类的属性和方法

1、类的属性:

如果类的属性是以两条下划线开始则该属性为类的私有属性,不能在类外部被访问。

私有属性的命名形式: __privateAttrs

 

如果在类内部的方法中使用类的私有属性,则应该以如下方式调用。

self.__privateAttrs

Python代码   收藏代码
  1. >>> class book:     
  2. ...     __author = ''    
  3. ...     __name = ''    
  4. ...     __page = 0    
  5. ...     price = 0    
  6. ...     
  7. >>> a = book()     
  8. >>> a.__author     
  9. Traceback (most recent call last):     
  10.   File "<stdin>", line 1in <module>     
  11. AttributeError: book instance has no attribute '__author'    
  12. >>> a.price     
  13. 0    
  14. >>>   

 
2、类的方法

在类的内部使用def关键字可以为类定义一个方法。与函数定义不同的是,类的方法必须包含参数 'self ’ ,

且'self'必须为第一个参数。和类的私有属性命名相同,类的私有方法名也要以两条下划线开始。

Python代码   收藏代码
  1. >>> class book:  
  2. ...     __author = ''  
  3. ...     __name = ''  
  4. ...     __page = 0  
  5. ...     price = 0  
  6. ...     def show(self):  
  7. ...             print self.__author  
  8. ...             print self.__name  
  9. ...     def setname(self,name):  
  10. ...             self.__name = name  
  11. ...  
  12. >>> a = book()  
  13. >>> a.show()  
  14.   
  15.   
  16. >>> a.setname('Tom')  
  17. >>> a.show()  
  18.   
  19. Tom  
  20. >>>   

 

在python中有一类以两条下划线开始并且以两条下划线结束的类方法,称之为专有方法。

__init__  构造函数,生成对象时调用

__del__  析构函数,释放对象时调用

__add__ 加运算

__mul__  乘运算

__cmp__ 比较运算

__repr__ 打印、转换

__setitem__ 按照索引赋值

__getitem__ 按照索引获取值

__len__ 获得长度

__call__ 函数调用

Python代码   收藏代码
  1. >>> class book:  
  2. ...     __author = ''  
  3. ...     __name = ''  
  4. ...     __page = ''  
  5. ...     price = 0  
  6. ...     def __check(self,item):  
  7. ...             if item == '':  
  8. ...                     return 0  
  9. ...             else:  
  10. ...                     return 1  
  11. ...     def show(self):  
  12. ...             if self.__check(self.__author):  
  13. ...                     print self.__author  
  14. ...             else:  
  15. ...                     print 'No value'  
  16. ...             if self.__check(self.__name):  
  17. ...                     print self.__name  
  18. ...             else:  
  19. ...                     print 'No value'  
  20. ...     def setname(self,name):  
  21. ...             self.__name = name  
  22. ...     def __init__(self,author,name):  
  23. ...             self.__author = author  
  24. ...             self.__name = name  
  25. ...   

 三、类的继承

1)单继承

Python代码   收藏代码
  1. >>> class parent:  
  2. ...     __a = ''  
  3. ...     __b = 0  
  4. ...     def __init__(self,a,b):  
  5. ...             self.__a = a  
  6. ...             self.__b = b  
  7. ...     def show(self):  
  8. ...             print self.__a  
  9. ...             print self.__b  
  10. ...  
  11. >>> a = parent('a',2)  
  12. >>> a.show()  
  13. a  
  14. 2  
  15. >>> class child(parent):  
  16. ...     __c = ''  
  17. ...     __d = 4  
  18. ...     def showinfo(self):  
  19. ...             self.show()  
  20. ...  
  21. >>> b = child('c',3)  
  22. >>> b.show()  
  23. c  
  24. 3  
  25. >>> b.showinfo()  
  26. c  
  27. 3  
  28. >>>   

 2)多重继承

Python代码   收藏代码
  1. # -*- coding:utf-8 -*-   
  2. class A:       #定义类A  
  3.  name = 'A'   
  4.  __num = 1  
  5.  def show(self):  
  6.   print self.name  
  7.   print self.__num  
  8.  def setnum(self,num):  
  9.   self.__num = num  
  10. class B:        #定义类B  
  11.  nameb = 'B'  
  12.  __numb = 2  
  13.  def show(self):  
  14.   print self.nameb  
  15.   print self.__numb  
  16.  def setname(self,name):  
  17.   self.__name = name  
  18. class C(A,B):  
  19.  def showall(self):  
  20.   print self.name  
  21.   print self.nameb  
  22.  show = B.show      #在这里表明show方法为B类的show方法,后来修改加上的  
  23.   
  24. >>> import jicheng  
  25. >>> a = jicheng.A()  
  26. >>> a.show()  
  27. A  
  28. 1  
  29. >>> c = jicheng.C()  
  30. >>> c.showall()  
  31. A  
  32. B  
  33. >>> c.show()  #默认调用A类的show方法  
  34. A  
  35. 1  
  36. >>> reload(jicheng)   #修改jicheng.py后重新加载  
  37. <module 'jicheng' from 'jicheng.py'>  
  38. >>> d =jicheng.C()  
  39. >>> d.show()  
  40. B  
  41. 2  
  42. >>>   

 五)重载

1)方法的重载实际上就是在类中使用def关键字重载父类的方法。如果重载父类中的方法,但又需要

在类中使用父类的该方法,可以使用父类名加‘ .’加方法名的形式调用。

Python代码   收藏代码
  1. # -*- coding:utf-8 -*-     
  2. class Mylist:     
  3.     __mylist = []     
  4.     def __init__(self,*args):          
  5.         self.__mylist = []     
  6.         for arg in args:     
  7.             self.__mylist.append(arg)      
  8.     def __add__(self,n):            #重载‘+’运算符     
  9.         for i in range(0, len(self.__mylist)):     
  10.             self.__mylist[i] = self.__mylist[i] + n      
  11.     def show(self):     
  12.         print self.__mylist     
  13.     
  14.     
  15. >>> import chongzai     
  16. >>> L = chongzai.Mylist(1,2,3,4,5)     
  17. >>> L.show()     
  18. [12345]     
  19. >>> L + 2    
  20. >>> L.show()     
  21. [34567]     
  22. >>>    

 

分享到:
评论

相关推荐

    Python面向对象程序设计示例小结

    主要介绍了Python面向对象程序设计,结合实例形式总结分析了Python面向对象程序设计中比较常见的类定义、实例化、继承、私有变量等相关使用技巧与操作注意事项,需要的朋友可以参考下

    Python 面向对象部分知识点小结

    主要介绍了Python 面向对象部分知识点,总结分析了Python面向对象程序设计中类、对象、实例等相关概念、原理与使用技巧,需要的朋友可以参考下

    Python语言程序设计习题答案.zip

    第6章 Python面向对象程序设计。面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章...

    Python语言程序设计PPT课件.zip

    第6章 Python面向对象程序设计。面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章...

    Python语言程序设计源代码.zip

    使读者在认识物质世界规律的过程中了解计算机的特点、程序设计的特点和人机交互的规律,在认识世界、解释世界和改造世界的实践中掌握Python编程特点、技术和技巧,学会结构化程序设计、面向对象程序设计、人机交互...

    Python-错误和异常小结.doc

    1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个, 大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照 面(除非你不用Python了)。 ...

    Python 面向对象静态方法、类方法、属性方法知识点小结

    主要介绍了Python 面向对象静态方法、类方法、属性方法,总结分析了Python 面向对象程序设计中静态方法、类方法、属性方法相关概念、知识点、操作技巧与使用注意事项,需要的朋友可以参考下

    Python编程入门经典

    10.3.1 定义面向对象编程 151 10.3.2 创建类 151 10.3.3 扩展已有的类 152 10.4 完成模块 153 10.4.1 定义模块特定的错误 154 10.4.2 选择导出哪些内容 154 10.4.3 为模块建立文档 155 10.4.4 测试模块 164 10.4.5 ...

    Python入门——类,面向对象的编程

    方法名(参数)2.4 修改属性2.4.1 直接修改2.4.2 通过方法修改属性2.4.3 继续拓展2.5 小结第三部分 类的继承——class 子类名(父类名)引子3.1 简单的继承3.2 给子类添加属性和方法3.3 重写父类的方法(多态)——方法...

    Python 核心编程 第二版

    阐释这门语言的“核心”内容,包括基本的概念和语句、语法和风格、 Python对象、数字类型、序列类型、映射和集合类型、条件和循环、文件和输入/输出、错误和异常、函数和函数式编程、模块、面向对象编程、执行环境等...

    Python核心编程第二版

     1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可移植性   1.3.6 易学   1.3.7 易读   1.3.8 易维护   1.3.9 健壮性   1.3.10 高效的快速原型开发工具   1.3.11 内存管理器...

    Python 错误和异常小结

    你还不知道什么是异常,额… 1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面...

    python学习笔记-面向对象高级编程-20200324

    文章目录面向对象高级编程使用__slots__使用__slots__使用@property练习多重继承Mixln小结定制类__str____iter____getitem____getattr____call__小结使用枚举类exercise小结使用元类type()metaclass 面向对象高级...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可移植性   1.3.6 易学   1.3.7 易读   1.3.8 易维护   1.3.9 健壮性   1.3.10 高效的快速原型开发工具   1.3.11 内存管理器...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可移植性   1.3.6 易学   1.3.7 易读   1.3.8 易维护   1.3.9 健壮性   1.3.10 高效的快速原型开发工具   1.3.11 内存管理器...

    Python学习手册

    , 类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。, 异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。, 讨论Python 3.0。, 《Python学习手册(第3版)》让你对...

    Python核心编程第二版(ok)

     1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可移植性   1.3.6 易学   1.3.7 易读   1.3.8 易维护   1.3.9 健壮性   1.3.10 高效的快速原型开发工具   1.3.11 内存管理器...

    Python学习手册(第3版)

     类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。  异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。 《Python学习手册(第3版)》讲述了:Python可移植、...

    Python学习手册(第3版).pdf 高清有书签

     类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。  异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。 《Python学习手册(第3版)》讲述了:Python可移植、...

Global site tag (gtag.js) - Google Analytics