除了从头开始,您还可以通过在新类名称后面的括号中列出父类来从现有类派生该类,从而创建一个类。
子类继承其父类的属性,您可以像在子类中定义它们一样使用这些属性。子类也可以覆盖父类的数据成员和方法。
派生类的声明与父类很相似;但是,在类名称后给出了要继承的基类列表-
class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional class documentation string' class_suite
#!/usr/bin/python class Parent: # define parent class parentAttr = 100 def __init__(self): print "Calling parent constructor" def parentMethod(self): print 'Calling parent method' def setAttr(self, attr): Parent.parentAttr = attr def getAttr(self): print "父级属性:", Parent.parentAttr class Child(Parent): # define child class def __init__(self): print "Calling child constructor" def childMethod(self): print 'Calling child method' c = Child() # instance of child c.childMethod() # child calls its method c.parentMethod() # calls parent's method c.setAttr(200) # again call parent's method c.getAttr() # again call parent's method
输出结果
执行以上代码后,将产生以下结果-
Calling child constructor Calling child method Calling parent method 父级属性: 200
以类似的方式,您可以从多个父类驱动一个类,如下所示:
class A: # define your class A ..... class B: # define your class B ..... class C(A, B): # subclass of A and B .....
您可以使用issubclass()
或isinstance()
函数检查两个类和实例之间的关系。
该issubclass(子,SUP)如果给定的子类子的确是超SUP的子类布尔函数返回TRUE。
的isinstance(OBJ,班)的布尔函数如果obj是Class类的实例,或者为类的子类的实例,则返回true