压力好大啊
给自己打气,加油加油猪崽子们!
今日洗脑金句:加油,好好学习,将来找个高薪工作,这样才能随心所欲,否则你只能随薪锁欲!
面向对象编程
一、面向过程编程
面向过程编程的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么……
基于面向过程编程的思想编写程序好比在设计一条流水线,是一种机械式的思维方式。
- 优点:复杂的问题流程化、进而简单化
- 缺点:扩展性差
没错,以上的东西我们之前讲过。
放屁!
对我确实讲过。
今天我们要讲的是更叼的东西,面向对象编程,看着你的老婆打代码,懂吗,哈哈,别听我的,我扯犊子的,面向对象编程就是把什么东西都给实例化成一个对象。
二、面向对象编程
面向对象编程的核心是对象二字,对象是特征与技能的结合体。
基于面向对象编程的思想编写程序,就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。
- 优点:可扩展性强
- 缺点:编程的复杂度要高于面向过程
给你们好好解释一下什么是面向对象编程。
类和对象
一、类和对象
- 类的意思:种类、分类、类别
对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和选课系统不能说是一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。
在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也一定有类这个概念,但是在Python程序中:必须先定义类,然后调用类来产生对象。
二、现实世界中定义类和对象
我来讲一个最常见的类,那就是人类。
我们每个人出生都有自带的属性,都有手有脚,有脑子(虽然我没有),有着人有的属性。每一个人都是这个类的一个实例,就是一个对象。那我们难道就都一样了吗?当然不,我们刚出生时一样,但是后来,我们学会了很多别的东西,这就是后来对象的增加的属性,我们自己加的,这就造成了每个对象的各型各色,就像东方学者学会了内力,日本忍者学会了查克拉,西方修士学会了精神力等等。
这就是一样的对象经过不同的操作后产生的结果。他们都有着类的相同属性,又有着自己的独有属性。
三、程序中定义类和对象
3.1定义类
# 注意类中定义变量使用驼峰体 class OldboyStudent(): school = 'oldboy' def choose_course(self): print('is choosing course')
这就是一个类的定义
- 曾经定义函数,函数只检测语法,不执行代码,但是定义类的时候,类体代码会在类定义阶段就立刻执行,并且会产生一个类的名称空间,也就是说类的本身其实就是一个容器/名称空间,是用来存放名字的,这是类的用途之一
3.2定义对象
stu1=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例 print(stu1.school)
这就是实例化了一个类,创建了一个对象。
那我们怎么学习忍术,学习查克拉呢??
学你阿妈呢,中国人学什么小日本的东西,跟我学法 轮 功
定制对象独有特征
首先引入这个方法
print(stu.__dict__)
这个可以直接查看这个类中定义好的属性,以一个字典的形式展现出来。
print(stu1.__dict__)
而这个对象中却看不到任何东西,为什么呢,因为他只是一个空的东西,你用这个对象调用的任何属性,都是去类里调用的,所以这里面都是空的,你依然可以调用到东西。
那怎样才能使这个字典里有东西呢?
当然是你后期假如的东西了啊。
比如
stu1.skill='法 轮 功' print(stu1.__dict__)
这个时候你打印的结果就不是空了,而是多出了一项叫做法 轮 功的技能,这个时候你没有对类造成影响,别的对象也没有这个属性,因为这是你自己发展的结果,所以能理解我之前说过的各型各色的对象的意思了吗?
一、查找属性的顺序
- 首先从自身查找,没找到往类中找,类中没有则会报错。即对象的属性查找顺序为:自身--》类--》报错