#__init__用来初始化对象,为对象设置初始值__init__函数至少包含一个形参(seif),__init__函数不允许有返回值
#当实例化对象的时候,__init__函数会自动调用
class people:
def __init__(self,name,age):
self.name = name
self,age = self.age
def self_introduce():
print('我是%s,我的年龄是%s' % (name,age))
p = people('盖伦',27)
P.self_introduce()
绑定方法
'''
默认情况下,在类中定义的方法 都是绑定方法
把对象和函数绑定到一起,方便数据的处理,通过对象就可以找到数据并且处理数据
类里存放着所有对象共有的属性和方法
绑定方法类调用的时候和普通函数没有任何区别,只有实例化对象后才绑定方法
'''
#类绑定方法:类和对象调用都是自动传类本身
class people:
继承与派生
# object,所有类的基类,在python3中都直接或间接的继承object
# 在oop中,继承描述的是类和类之间的关系,什么是什么的关系
# 无论任何类都可以使用object这个父类的方法
# 继承的查找顺序:先找自己的,找不到再找类的,类的父类,最后一定会找到object
# 抽象指的是将一系列类中相同的特征和相同行为抽取形参的一个新的类
# 当子类拥有与父类不同的内容 就称之为派生类
class people:
def show():
print('执行了people')
class person(people):
name = 1
def show():
print('执行力person')
覆盖与重用
#子类的方法覆盖了父类的方法,方法名是一样的,本质上是查找顺序
class people:
def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender
def show():
print('执行了people')
class person(people):
name = 1
def show():
print('执行lperson')
#重用,子类对父类方法的重新使用
class Student(people):
people.__init__(self,name,age,gender)
self.number = number
#方法二 python2中不支持
super().__init__(name,age,gender)
#方法三
super(Student,self).__init__(name,age,gender)