一个简单的示例–类的定义和继承
#类的定义
class Student():"""class Student(object):也可在括号中添加object,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承下来的类"""
def __init__(self,name,score):
self.name = name
self.score = score
tcar = Student("zql",66)
print(tcar.name,tcar.score)
#若Student("zql")则会报错,参数需要对应完善,self无需对应,在调用类时会自动匹配对象名。
TypeError: __init__() missing 1 required positional argument: 'score'
#类的方法
class Student(object):
def __init__(self,name,score):
self.name = name
self.score = score
def print_score(self):#此处对数据进行操作,便表示方法
print("%s:%s"%(self.name,self.score))
tcar = Student("zql",66)
tcar.print_score()
#继承1:改变父类中的方法
class Student(object):
def __init__(self,name,score):
self.name = name
self.score = score
def print_score(self):
print("%s:%s"%(self.name,self.score))
class SeniorStudent(Student):
def print_socre(self):
print("%s,%s"%(self.name,self.score))
tcar = Student("zql",66)
tcar.print_score()
scar = SeniorStudent("ZQL",22)
scar.print_score()
输出:
zql:66
ZQL:22
#对于同一方法名,子类将会对父类进行覆盖
#继承2:改变子类中的属性
class Student(object):
def __init__(self,name,score):
self.name = name
self.score = score
def print_score(self):
print("%s:%s"%(self.name,self.score))
class SeniorStudent(Student):
def __init__(self,name,score,age):
super().__init__(name,score)%继承父类中所用属性,也可以重新给初始化定义
self.age = age
def print_score(self):
print("%s,%s,%s"%(self.name,self.score,self.age))
tcar = Student("zql",66)
tcar.print_score()
scar = SeniorStudent("ZQL",77,23)
scar.print_score()
输出:
zql:66
ZQL,77,23
参考:
http://yangcongchufang.com/%E9%AB%98%E7%BA%A7python%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/python-object-class.html