博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用项目自学python 类,构造函数,析构函数,私有属性,继承,多继承
阅读量:5341 次
发布时间:2019-06-15

本文共 2523 字,大约阅读时间需要 8 分钟。

学习内容:

1,类

2,构造函数

3,析构函数

4,私有属性

5,继承

6,多继承

 

类    class                                            

一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法

 

class school(object):            #创建类      def __init__(self,name,addr):     #类的初始化,self是必须存在,其他参数可自定义        self.name = name          #参数定义        self.addr = addr

 已经定义好一个类,那我们又如何执行呢?

school = school("szu","nanshanqu")    #定义变量名,第一个school相当于定义初始化的self,szu赋给name,addr是nanshanqu

这些初始化的属性,也称为静态属性。

 类的继承                                                                                      

一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承

 

class school(object):    def __init__(self,name,addr):        self.name = name        self.addr = addr        self.students = []        self.staffs  = []    def enroll(self,stu_obj):            #类中定义的功能,学校具有为学生注册的功能,和雇佣老师的功能。这都是school这个类的动态属性,所以从新定义了一个函数        print("成功为\033[31;1m%s\033[0m注册" %stu_obj.name)        self.students.append(stu_obj)    def hire(self,staff_obj):        print("成功雇佣\033[31;1m%s\033[0m" %staff_obj.name)        self.staffs.append(staff_obj)class schoolmember(object):                 def __init__(self,name,age,sex):        self.name = name        self.age = age        self.sex = sex    def tell(self):        passclass student(schoolmember):                #类的继承,继承了schoolmember这个类    def __init__(self,name,age,sex,stu_id,grade):        super(student,self).__init__(name,age,sex)        self.stu_id =stu_id        self.grade = grade    def pay_tution(self,amount):        print("%s学生成功缴费%s" %(self.name,amount))    def tell(self):        print('''________info of student:%s_________        name:%s        age:%s        sex:%s        stu_id:%s        grade:%s        '''%(self.name,self.name,self.age,self.sex,self.stu_id,self.grade))class teacher(schoolmember):        #类的继承,继承了schoolmember这个类    def __init__(self,name,age,sex,salary,course):        super(teacher,self).__init__(name,age,sex)        self.salary = salary        self.course = course    def tell(self):        print('''________info of teacher:%s_________           name:%s           age:%s           sex:%s           salary:%s           course:%s           ''' % (self.name, self.name,self.age,self.sex,self.salary,self.course))    def teach(self,course):        print("%s老师正在上%s课程" %(self.name,self.course))s1 = student("小张",22,"男",1001,"研1")s2 = student("小ma",22,"男",1002,"研2")t1 = teacher("德玛西亚",42,"男",100000, '语文')t2 = teacher("沃尔玛",32,"女",60000, '数学')s1.tell()t1.tell()s1.pay_tution(10000)t1.teach('语文')school = school("szu","nanshangqu")school.hire(t1)school.enroll(s1)

完整实现了面向对象编程,对于之后要是往学生或者老师这个类中加属性都非常方便

 作业:

 

转载于:https://www.cnblogs.com/xiaomangxie/p/8548348.html

你可能感兴趣的文章
Scikit-learn 库的使用
查看>>
CSS: caption-side 属性
查看>>
python 用数组实现队列
查看>>
认证和授权(Authentication和Authorization)
查看>>
Mac上安装Tomcat
查看>>
CSS3中box-sizing的理解
查看>>
传统企业-全渠道营销解决方案-1
查看>>
Lucene全文检索
查看>>
awk工具-解析1
查看>>
推荐一款可以直接下载浏览器sources资源的Chrome插件
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告...
查看>>
AMH V4.5 – 基于AMH4.2的第三方开发版
查看>>
Mac下安装npm全局包提示权限不够
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
Python: 对于DataFrame.loc传入列表和传入元组输出区别的理解
查看>>
USACO / Sorting a Three-Valued Sequence (简单题,方法正确性待证)
查看>>
Android开发中 .9.png格式图形设计:
查看>>
Linux常见命令
查看>>