第一阶段:Python开发基础 day23 面向对对象的程序设计(一)
目录
一、面向对象编程介绍一、面向过程编程面向过程变成的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么…… 基于面向过程编程的思想编写程序好比在设计一条流水线,是一种机械式的思维方式。
二、面向对象编程面向对象编程的核心是对象二字,对象是特征与技能的结合体。 基于面向对象编程的思想编写程序,就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。
二、类和对象一、类和对象
对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和选课系统不能说是一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。 在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也一定有类这个概念,但是在Python程序中:必须先定义类,然后调用类来产生对象。 二、现实世界中定义类和对象就拿未来我们的选课系统来讲,我们先总结一套现实世界中的学生对象:
2.2 定义对象 站在未来选课系统的角度,我们还可以总结现实世界中的学生类:
三、程序中定义类和对象3.1 定义对象# 注意类中定义变量使用驼峰体 class OldboyStudent(): school = 'oldboy' def choose_course(self): print('is choosing course')
print(OldboyStudent.__dict__)
print(OldboyStudent.__dict__['school'])
print(OldboyStudent.__dict__['choose_course'])
try: OldboyStudent.__dict__['choose_course']() except Exception as e: print('error:',e)
print(OldboyStudent.school)
OldboyStudent.choose_course(111)
print(OldboyStudent.choose_course)
OldboyStudent.__dict__['choose_course']
OldboyStudent.country='China' OldboyStudent.__dict__['country'] 'China' OldboyStudent.country='CHINA' OldboyStudent.__dict__['country'] ‘CHINA‘ del OldboyStudent.school print(OldboyStudent.__dict__)
3.2 定义对象
stu1=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例 print(stu1.school)
stu2=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例 print(stu2.school)
stu3=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例 stu3.choose_course()
三、绑定方法定义在类内部的方法:
示例: class Student: #变量表示属性 school='oldboy' #__init__ 看好名字,不是__int__ def __init__(x,name): x.name=name def choose(self): print("选课....") def study(self): print('%s学会了python'%self.name) stu1=Student('nick') stu1.study() stu1=Student('李铁蛋') stu1.study() 四、一切皆对象python中,字典、列表字符串···都是对象
五、小练习#人狗大战 #定义一个狗类 class Dog: type_dog='藏獒' def __init__(self,name,aggressivity,hp=100): self.name=name self.aggressivity=aggressivity self.hp=hp def bite(self,target): #当期狗的攻击力:self.aggressivity #人的血量:target.hp target.hp-=self.aggressivity print(''' 狗的品种:%s %s狗咬了一下%s人,人掉血:%s 人的血量剩余:%s '''%(self.type_dog,self.name,target.name,self.aggressivity,target.hp)) #人类 class Human: def __init__(self,target): target.hp-=self.aggressivity print(''' %s人咬了一下%s狗,狗掉血:%s 狗的血量剩余:%s '''%(self.name,target.hp)) #实例化产生狗对象 # dog1=Dog('旺财',10) dog1=Dog('旺旺财',10,200) nick=Human('nick',50) dog1.bite(nick) print(nick.hp) dog1.bite(nick) print(nick.hp) nick.bite(dog1) 今日总结无 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |