Python学习第八天——学校(类的继承)

 1 #coding=utf-8
 2 #Version:python 3.6.0
 3 #Tools:Pycharm 2017.3.2
 4 _date_ = ‘2018/4/25/025 21:02‘
 5
 6 class school(object):
 7     def __init__(self,name,addr):
 8         self.name = name
 9         self.addr = addr
10         self.students = []
11         self.teachers = []
12         self.staffs = []
13
14     def enroll(self,stu_obj):
15         print("student %s enrolls in"%stu_obj.name)
16         self.students.append(stu_obj)
17
18     def hire(self,staff_obj):
19         self.staffs.append(staff_obj)
20         print("hire new staff %s"%staff_obj.name)
21
22 class schoolmember(object):
23     def __init__(self,name,age,sex):
24         self.name = name
25         self.age = age
26         self.sex = sex
27
28     def tell(self):
29         pass
30
31 class teacher(schoolmember):
32     def __init__(self,name,age,sex,salary,course):
33         super(teacher,self).__init__(name,age,sex)
34         self.salary = salary
35         self.course = course
36
37     def tell(self):
38         print(‘‘‘
39         -----info of teacher:%s-----
40         name:%s
41         age:%s
42         sex:%s
43         salary:%s
44         course:%s
45         ‘‘‘%(self.name,self.name,self.age,self.sex,self.salary,self.course))
46
47     def teach(self):
48         print("%s is teaching %s"%(self.name,self.course))
49
50 class student(schoolmember):
51     def __init__(self,name,age,sex,stu_id,grade):
52         super(student,self).__init__(name,age,sex)
53         self.stu_id = stu_id
54         self.grade = grade
55
56     def tell(self):
57         print(‘‘‘
58         -----info of student %s-----
59         name:%s
60         age:%s
61         sex:%s
62         stu_id:%s
63         grade:%s
64         ‘‘‘%(self.name,self.name,self.age,self.sex,self.stu_id,self.grade))
65
66     def pay(self,amount):
67         print("%s has paid tution for $%s"%(self.name,amount))
68
69 school = school("hnust","xiangtan")
70 t1 = teacher("adam",28,"male",200000,"python")
71 t2 = teacher("eva",28,"female",200000,"music")
72 s1 = student("alex",22,"male",1404020422,"opp-1")
73 s2 = student("eason",19,"male",1404020423,"opp-2")
74
75 t1.tell()
76 s1.tell()
77 school.hire(t1)
78 school.hire(t2)
79 school.enroll(s1)
80 school.enroll(s2)
81
82 print(school.students)
83 print(school.staffs)
84
85 school.staffs[0].teach()
86 for stu in school.students:
87     stu.pay(500)

E:\ProgramData\Anaconda3\python.exe D:/Python_proc/s14/week6/day1/继承-学校.py

        -----info of teacher:adam-----
        name:adam
        age:28
        sex:male
        salary:200000
        course:python

        -----info of student alex-----
        name:alex
        age:22
        sex:male
        stu_id:1404020422
        grade:opp-1

hire new staff adam
hire new staff eva
student alex enrolls in
student eason enrolls in
[<__main__.student object at 0x0000028F0A59D8D0>, <__main__.student object at 0x0000028F0A59D908>]
[<__main__.teacher object at 0x0000028F0A59D860>, <__main__.teacher object at 0x0000028F0A59D898>]
adam is teaching python
alex has paid tution for $500
eason has paid tution for $500

Process finished with exit code 0

  

原文地址:https://www.cnblogs.com/yongor/p/8947498.html

时间: 2024-10-12 18:47:49

Python学习第八天——学校(类的继承)的相关文章

Python学习笔记2:类的定义和继承

# 类的定义 格式: class 类名(父类): __init(self,参数) 成员方法 成员变量 # 所有类的基础object #  私有方法和变量使用__开头 例如:定义一个鸟类 class Bird(object): __have_feather = True # 私有属性:是否有羽毛 way_of_reproduct = "egg" # 公有属性:繁殖方式 def move(self, dx, dy): # 公有方法 position = [0,0] position[0]

Python学习笔记总结(三)类

一.类简单介绍 1.介绍 类是Python面向对象程序设计(OOP)的主要工具,类建立使用class语句,通过class定义的对象. 类和模块的差异,类是语句,模块是文件. 类和实例 实例:代表程序领域中具体的元素. 类是生产实例的工厂,实例就像带有“数据"的记录,而类是处理这些记录的“程序”. 类是实例工程,类的属性提供行为(数据以及函数[方法]),所有从类产生的实例都继承该类的属性. 类的一个实例可以通过:实例.属性,实例.方法,获得类的属性和方法调用.类支持继承,当我们对class语句产生

Python 进阶(四)类的继承

继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): def __init__(self, name, gender, score)

python学习_day24_面向对象三大特性之继承

一.继承的定义 继承在python中是创建一种新类的方法,新建的类可以继承一个或者多个父类,其中父类称为超类或者基类,新建的类称为派生类或者子类.继承表达的是什么是什么的关系,如:高桌子低板凳都是木头,他大舅他二舅都是他舅. 1.继承实例 如下例,定义了两个类:Dog和Cat类,他们都其都有相同吃.喝.睡的特性. #狗 class Dog: def eat(self): print('eating') def drink(self): print('drinking') def sleep(se

python 学习笔记7(类/对象的属性)

27. 属性的__dict__系统 1)对象的属性可能来自: 其类的定义,叫做类属性 继承父类的定义 该对象实例定义(初始化对象时赋值),叫做对象属性 2)对象的属性存储在对象的 __dict__ 属性中: __dict__ 为字典,键为属性名,值是属性本身. 例子: class bird(object): feather = True # 父类 class chicken(bird): fly = False def __init__(self, age): self.age = age #

python面向对象编程基础II(类的继承)

继承一个类 继承的好处: 1.复用已有代码 2.自动拥有现有类的所有功能 3.只需要编写缺少的功能 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Pers

Python学习_12_方法和类定制

方法 在上一篇随笔中,简单提到了类的某些方法:__init__()等的调用,并简要说明方法和函数的区别. 方法是在类内部定义的函数,方法也是对象,所以方法是类的属性,这就是为什么说实例的方法存在于类定义中.而在ruby中,方法肯定是存在于类中的,实例的单件方法就存在于单件类中,python中并没有单件类,并且方法本质也是属性,所以实例的方法也可以存在于自身,而在调用方法时,同样遵循命名空间的查找顺序.但是方法和一般是属性任然存在区别: from types import MethodTypecl

Python 学习笔记 - 面向对象(类成员)

上一篇学习了Python面向对象的3大特性,封装,继承和多态,这一篇继续学习类成员,包括字段,方法,属性以及他们的修饰符. 1.字段 字段分为静态字段和普通字段.静态字段属于类,而普通字段属于对象,因此静态字段在内存中只保存一份,而普通字段在每个对象中都保存了一份.定义的时候静态字段定义在类的范围里面,而普通字段定义在方法里面. 例如: >>> class Foo:     # 字段(静态字段)     CC = 123     def __init__(self):         #

python学习小结5:封装、继承、多态

面向对象程序设计中的类有三大特性: 继承,封装,多态 继承:以普通的类为基础建立专门的类对象 封装:对外部世界隐藏对象的工作细节 多态:可对不同类的对象使用同样的操作 在Python中类的继承定义基本形式如下: #父类 class superClassName: block #子类 class subClassName(superClassName): block 说明:在定义一个类的时候,可以在类名后面紧跟一对括号,在括号中指定所继承的父类,如果有多个父类,多个父类名之间用逗号隔开. clas