面向对象编程--类--对象--单继承

博客内容对于类的介绍较少,重点在实践,定义可以查找其它资料

 

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}

 

posted @ 2021-09-29 22:08  落叶给树的留言  阅读(43)  评论(0)    收藏  举报