面向对象
概念:面向对象编程是一种编程思想,可以将对象理解为容器,该容器是对数据和功能的一种高度整合,很好实现了数据和功能之间的解耦。
为啥说对象是对数据和功能的一种高度整合?
1.模块化也是一种容器,通过将数据和功能封装到文件中,各个功能如果解耦会使得文件数非常多
2.列表、字典也是一种容器,通过将数据和功能封装到列表和字典中,但是功能并不能写到列表和字典中,真正的功能函数还是要在列表和字典容器外实现,这个并没有实现数据和功能的高度整合
3.对象也是在类实例化后产生了自己的名称空间
类
概念:类也是一种容器,里面也可以是数据和函数的集合,类的作用是对对象中重复的部分做了整合,减少了对象中的代码冗余
类的特点
1. 类在定义阶段就执行了类的函数体代码,产生相应的名称空间。如 class Student: 类名一般使用的是驼峰体
2. 数据查询的顺序是:先找对象,对象中没有再到相应的类中寻找
3. 定义的顺序:先定义类,再定义相应的对象
4. 类中定义的__init__()方法会在实例化的时候自动触发运行,该功能返回的是None,一般用于不同对象中的独特属性
5. python中类定义的功能会自动加上self(也可以改成其他名称),该值代表的当前实例化的对象
类和对象属性的访问和获取
class Student:
school="beijing university"
def __init__(self,name,age,gendar):
self.name=name
self.age=age
self.gendar=gendar
def choose(self,lover):
print("选择的课程为:{}".format(lover))
res1=Student.__dict__["school"]
res2=Student.school
print(res1,res2)
obj1={}
res4=Student.__dict__["choose"](obj1,"basketball")
print(res4)
obj2=Student("lzz",28,"male")
obj2.choose("study")
obj2.subject= "study"
print(obj2.__dict__)