一:面向对象与面向编程
1.面向过程编程
定义变量,定义函数,面向过程编程
2.面向对象编程
定义一个类
类中有属性(变量,特征) 有方法(函数,技能)
![image](https://img2020.cnblogs.com/blog/2608805/202112/2608805-20211205203931430-1902958158.webp)
二:类与对象
1.什么是类?
有属性,有方法的就是类
2.什么是对象
类加()得到的就是对象
比如说:举例
我们造就一个张三对象,它有身高体重,还有睡觉技能(特征与技能的结合体:属性和方法)
定义一个类
类 类名:
class Person: 推荐使用驼峰提
属性 特征 相当于变量
height = 180
weight = 90
方法 技能 相当于函数/自动生成self
def sleep(self):
print('睡觉技能')
定义一个对象
zhangsan = Person() 有了类加括号得到的就是 对象
使用对象
print(zhangsan.height) 获得张三的身高
print(zhangsan.weight) 获得张三的体重
zahngsan.sleep() 让张三去睡觉 调用函数
这就是面向对象的思维逻辑
![image](https://img2020.cnblogs.com/blog/2608805/202112/2608805-20211205203939111-1807130565.webp)
1.1类与对象 定义
定义一个学生类(学习属性,选课技能),实例化得到一个学生对象
class Student: 类名尽量用驼峰体
school = 'oldboy'
方法 特殊函数 定义在类内部 并且有一个参数(self):
def choose_course(self):
print('选课技能')
student = Student() 类的实例化 得到对象
对象命名不是固定的
__dict__ 就是类的名称空间
print(Student.__dict__)
输出结果:以__开头的先不用关注,写在类中的属性和方法,都在Student中
通过Student 取得school
print(Student.school) 输出结果:oldboy
print(Student.choose_course) 得到了类中特殊函数的内存地址
对象 srudent名称空间中没有oldbog 然后再去类名称空间中找
对象,属性 ---》先从对象自己的名称空间中找---》类的名称空间找---》
print(student.school) 输出结果:oldboy
多个对象 对应同样的类
student1 = Student() 类的实例化 得到对象
通过对象得到
print(student1.school) 输出结果:oldboy
三:实例化
类就是 class 修饰的有属性 有方法一系列的结合体
class Person:
属性
naem = 'zll'
方法
def run(self):
pass
注:对象是由类实例化得到的
person = Person() 类名加括号就叫实例化
![image](https://img2020.cnblogs.com/blog/2608805/202112/2608805-20211205203923971-1303752312.webp)
四:python中一起皆对象
在我们之前学习的过程中 其实都是对象 比如:
对象 类
ll = list(11,22,33)
print(ll)
对象 类
ll = list()
print(ll) 结果:[]
![image](https://img2020.cnblogs.com/blog/2608805/202112/2608805-20211205203917566-1256604845.webp)