用super( )调用父类的方法
调用父类里面的方法
12345
isinstance 判断类型
issubclass 判断是否为子类

引用父类的方法必须使用super(自己类名称,self)method(*arg,**kw)
子类应当主动调用父类的构造函数:
def __init__(self, name, age, weight, language): super(BackendProgrammer, self).__init__(name, age, weight) self.language = language
判断对象是否从属于一个类的时候可以用isinstance()函数:
isinstance(对象,类)
打印True的该对象就是类实例化过的那个对象
同理用issubclass()可以判断一个类是否是另一个类的子类
继承父类的方法可以用super()方法:
super(子类名,self).方法名(父类该方法定义的属性)
子类可以继承父类的属性,添加属性,覆盖父类的属性,父类不能使用子类 的属性,也能添加,不能覆盖
super(B,self).method(arg):调用父类的方法
正常调用父类方法
super 调用父类方法:
classB(A):
def method(self,arg):
super(B,self).method(arg)
call parent class's method
class inheritance syntax
类的继承另外一种方法
类的继承 super()
#!/usr/bin/env /python
#-*- coding: utf-8 -*-
class Programer(object):
hobby = 'Play Computer'
def __init__(self,name,age,weight):
self.name = name
self._age = age
self.__weight = weight
@classmethod
def get_hobby(cls):
return cls.hobby
@property
def get_weight(self):
return self.__weight
def self_introduction(self):
print 'My name is %s \n I am %s years old\n '%(self.nameB,self._age)
class BackendProgramer(Programer):
def __init__(self,name,age,language):
super(BackendProgramer,self).__init__(name,age,weight)
self.language = language
if __name__ == '__main__':
programer = BackendProgramer('Albert',25,80,'Python')
print dir(programer)
print programer.__dict__
print type(programer)
print isinstance(programer,Programer)
调用父类的方法用super()
继承使得大量代码被复用,是面向对象的优势。
Object类是一切类的父类。
继承的子类会继承父类的属性和方法,也可以自己定义,覆盖父类的属性和方法。
在重写父类时,需要调用父类里的方法-->super()
class A(object): def method(self, arg): pass class B(A): def method(self, arg): super(B, self).method(arg)
子类的类型判断:
isinstance:判断类型
issubclass:判断是否是子类
class Programer(object):
hobby = 'Play Computer'
def __init__(self, name, age, weight):
self.name = name
self._age = age
self.__weight = weight
def self_introduction(self):
print 'My name is %s \nI am %s years old\n' % (self.name, self._age)
class BackendProgramer(Programer):
def __init__(self, name, age, weight, language):
super(BackendProgramer, self).__init__(name, age, weight)
self.language = language
if __name__ == '__main__':
programer = BackendProgramer('Albert', 25, 80, 'Python')
print dir(programer)
print programer.__dict__
print type(programer) #-->属于BackendProgramer
print isinstance(programer, Programer) #-->True
类的继承
子类的类型判断
isinstance
issubclass
类的继承
super(B, self).method(arg)
jietu
类的继承:
会继承父类的属性和方法
也可以自己定义,覆盖父类的属性和方法
用super()调用父类的方法:
super(子类名,self).method(arg)