面向对象编程--类--对象--单继承
博客内容对于类的介绍较少,重点在实践,定义可以查找其它资料
1、类--对象
通过类生成对象(实例化)
学习继承之前我们先看一下 经典类和新式类
经典类:默认没有继承任何父类
新式类:默认继承了object
python3中默认会继承object(内置),所以python3中全部都是新式类
1 '''定义一个学生类'''
2 class Student:#类名建议使用驼峰体去命名
3 def __init__(self,name,age,gender):#__init__()实例化(创建对象)时自动执行
4 self.name=name,#__init__()中定义类的默认属性
5 self.age=age,
6 self.gender=gender
7
8 '''定义一个修改名字的功能'''
9 def set_info(self,value):
10 self.name=value
11
12 '''通过类创建对象==实例化'''
13 stu_obj=Student('alex',18,'female')
14 print(stu_obj.__dict__)#{'name': ('alex',), 'age': (18,), 'gender': 'female'}
15 '''通过字典去查看属性'''
16 print(stu_obj.__dict__['name'])#('alex',)
17 '''还有更简单的方式去查看属性'''
18 print(stu_obj.name)#('alex',)
19 '''修改学生名字 属性修改有两种方式
20 1、通过定义功能修改(此程序定义了一个set_info的函数,2、对象访问属性然后赋值修改)'''
21 stu_obj.set_info('engo')#只需要给函数传一个参数,因为默认会把对象本身传入
22 '''查看是否已经修改'''
23 print(stu_obj.name)#engo
2、继承
1 '''
2 类的继承
3 1、单继承
4 2、多继承
5 '''
13 '''创建一个'人'的类'''
14 class People:
15 def __init__(self,name,age,gender):
16 self.name=name,
17 self.age=age,
18 self.gender=gender
19 '''修改名字的函数'''
20 def set_info(self,value):
21 self.name=value
22
23 class Student(People):#继承 people 这个类的属性
24 def choose_course(self):
25 print('%s正在选课'%self.name)#此处就会调用父类的属性
26
27 stu_obj=Student('alex',18,'female')
28 #print(stu_obj.__dict__)#{'name': ('alex',), 'age': (18,), 'gender': 'female'}
29 stu_obj.choose_course()#alex正在选课
30 '''如果父类和子类有同名数据,访问属性以自己的为主'''
31
32 class Teacher(People):
33 def __init__(self,name,age,gender,selary,level):
34 People.__init__(self,name,age,gender)#部分属性可以使用父类中的,需要拓展
35 self.selary=selary,
36 self.level=level
37
38 teacher_obj=Teacher('lisa',19,'femal',20000,5)
39 print(teacher_obj.__dict__)#{'name': ('lisa',), 'age': (19,), 'gender': 'femal', 'selary': (20000,), 'level': 5}
本文来自博客园,作者:{落叶给树的留言},转载请注明原文链接:https://www.cnblogs.com/luoyegeishudeliuyan/p/15354623.html