只是对一些新的知识的记录

1、创建类

class ClassName:
<statement-1>
.
.
.
<statement-N>

类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。 __init__() 方法可以有参数

2、方法 (类中叫方法,单独写交函数)

定义一个名为 __init__() 的特殊方法(构造方法)

def __init__(self):
self.data = []

类定义了 __init__() 方法的话,类的实例化操作会自动调用 __init__() 方法。

self代表类的实例,而非类。self 永远是执行该方法的调用者

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

3、继承

class DerivedClassName(BaseClassName1):
<statement-1>
.
.
.
<statement-N>

需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法。

BaseClassName(示例中的基类名)必须与派生类定义在一个作用域内。除了类,还可以用表达式,基类定义在另一个模块中时这一点非常有用:

class DerivedClassName(modname.BaseClassName):

当子类对象调用方法时,若子类中有,直接调用,比如f2()会使用子类中重写的方法,但当子类中没有时,就会去父类中寻找。

class Base:
def a(self):
print('Base.a') class F(Base):
def a1(self):
print('F.a') class S(F):
def b(self):
print('S.b') obj = S()
obj.b()
obj.a()

Python支持多继承

class DerivedClassName(Base1, Base2, Base3):
<statement-1>
.
.
.
<statement-N>

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。

需要注意如果他们有共同的基类,如果搜索到了L1中还没有这个方法,并不会去搜索Base,而是去搜索R1,R2,最后去搜索Base

4、方法重写

#!/usr/bin/python3

class Parent:        # 定义父类
def myMethod(self):
print ('调用父类方法') class Child(Parent): # 定义子类
def myMethod(self):
print ('调用子类方法') c = Child() # 子类实例
c.myMethod() # 子类调用重写方法
super(Child,c).myMethod() #用子类对象调用父类已被覆盖的方法

调用父类方法的两种方式:   super(类名 ,self).父类的方法(...)    or    父类名.父类中的方法(self, ...)

最新文章

  1. java多线程系类:JUC线程池:05之线程池原理(四)(转)
  2. Python中的file和open简述
  3. Oracle数据库,内置函数小结
  4. Python 与 C# lambda表达式比较
  5. TCP/IP, HTTP, socket
  6. Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)
  7. 从cellForRowAtIndexPath 看cell的重用机制
  8. Linux学习——粘粘今天看的东西
  9. PHP字符串的编码问题(转)
  10. 找不到eth0,但能找到eth1的问题解决办法
  11. SQL学习之高级联结(自联结、自然联结、外联接)
  12. html to pdf
  13. [BZOJ]1018 堵塞的交通(SHOI2008)
  14. SQL Server 优化
  15. [转]Deciding on a Project Coding Mask
  16. 044 SimpleDateFormat的线程安全问题与解决方案
  17. 案例学python——案例三:豆瓣电影信息入库
  18. Ubuntu下U盘变成只读的解决方法
  19. ftp主动模式与被动模式交互过程分析
  20. xcrun: error: invalid active developer path

热门文章

  1. Android7.0打开sdacrd图片问题
  2. SQL SERVER中的sys.objects和sysobjects的区别
  3. solarwinds之监控路由器
  4. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online J Press the Button
  5. iOS性能优化未阅文章归档
  6. ZBrush中SnakeHook蛇钩笔刷介绍
  7. Aspose.Cells基础使用方法整理
  8. VMware虚拟机共享文件夹
  9. easyui的增删改
  10. jquery.nicescroll.min.js滚动条插件的用法