python 基础 5.3 类的重写
一. 类的重写
只需要重新定义类的属性(变量),就是累的重写了
示例:重新定义类grandson的 name属性
#/usr/bin/python
#coding=utf-8
#@Time :2017/11/6 15:23
#@Auther :liuzhenchuan
#@File :类的重写.py
class parent(object):
name = 'parent'
sex = 'F'
coller = 'yellow'
language = 'chinese'
def __init__(self):
print 'my name is {0}'.format(self.name)
def get_sex(self):
return self.name
a = parent()
a.get_sex()
print '#'*15
class child(object):
name = 'child'
coller = 'yellow'
def __init__(self):
print 'my name is {0}'.format(self.name)
def get_coller(self):
return self.coller
b = child()
print b.get_coller()
print '#'*15
class grandson(parent,child):
name = 'grandson'
def __init__(self):
print 'my name is {0}'.format(self.name)
def get_coller(self):
return self.coller
def get_language(self):
return self.language
#类的重写,只需要重新定义变量,直接打印
def get_name(self):
print 'my name is xiaoming'
c = grandson()
print c.get_coller()
print c.get_language()
c.get_name()
二. __init__ 是每个类的默认方法,如果子类想继承父类的__init__ 方法,需要用supper(子类,self)。子类把父类方法重写的时候,会默认忽略父类中的 return
格式:子类想继承__init__
supper(子类名称,self).__init__(有参数就跟参数)
print '$$$$$$$ ' //使用supper函数,会忽略父类中的return,直接执行子类中
supper下的一些方法逻辑,所以直接用print 打出来
格式: 子类想继承父类中的其他方法
supper(子类名称,self).父类中的方法 //没参数就跟父类中的方法名
print '#######' // 使用supper函数,会忽略父类中的return