一、面向对象的介绍
#class关键字用来定义类
#类的命名:以驼峰命名法进行命名
#类里面的变量叫做类属性
class Person:
name = 'xiaobai'
age = 18
sex = 'male'
def eat():
print('干饭')
ljx = Person() #实例化一个对象
ljx.name = ‘ljx’
ljx。age = 23
ljx.sex = ‘female’
二、类的使用
class Person:
#__init__是初始化方法,在实例化中自动调用
#self代表实力本身
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
#表示析构函数,当删除时,就会自动调用此函数
def __del__(self):
print(f'{self.name}被析构了')
#类中的函数应定要有参数self
def eat(self):
print('干饭')
#实例化一个对象
ljx = Person(‘ljx’,18,‘male’)
#读取属性直接 实例化的对象名.属性就可以
ljx.name
>>>ljx
三、继承和重用
1、继承
class Person:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def __del__(self):
print(f'{self.name}被析构了')
def eat(self):
print('干饭')
#括号里面的类,表示继承的是哪个类
#继承Person类后,就拥有Person中的所有属性和方法
class SiChuan(Person):
def play(self):
print(“四川人爱打麻将”)
class GuangDong(Person):
def play(self):
print('广东人爱喝茶')
#Object是顶级基类,也就是网上找所有对象最终继承的都是python中定义好的Object类
2、重用:表示子类重新定义父类的方法,一种方法有不同的行为
思考:以上例子中如何表达不同地方的人爱吃什么东西?
class Person:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def eat(self):
print("干饭")
class SIChuan(Person):
#重写父类中的方法
def eat(self):
print("四川人吃火锅")
#子类中重写方法后还要使用父类中重写之前的方法
#方法一:
直接付父类名.方法名()
#方法二:推荐
supper().方法名()
四、多继承
class HunXue(SiChuan,GuangDong):
#pass代表类里面没有人和属性和方法
#只是把结构写完整
pass
#HunXue.__base__查看类的继承第一个类
#HunXue.__bases__查看类的所有继承的类
#HunXue.mro() 查看类继承的继承顺序