面向对象基础

面向过程:

针对过程(一系列流程/步骤)的编程方式思想

#IPO(流程):

I:input(输入)--》P:process(对一系列流程进行处理)--->O:output(输出)

码代码的目的:针对一些输入的变量,的步骤改变变量进行一系列--》得到想要的结果

面向过程编程:一个函数以函数的执行,上一个函数输出是下一个函数的输入

优点:代码的独立性高,流程清晰

缺点:出错一处,整个程序崩溃

编程:控制变量在不断地变化

----计算机永远不出错-》出现错误--代码的逻辑出错

查错:

不断打印变量

对象:一系列特征(属性)和技能(方法)结合体

面向对象:

对象和对象的交互

优点:单个对象变化不会影响全局或单个对象

缺点:异常复杂

类:划分对象,具有相同的属性和技能的对象属于同一类

特点:

现实生活是先有对象才有类

python中先有类才有对象

----(python中我们充当造物主的角色)

对象的数量大于类的数量

#定义类
---**---注释
class  类名(用驼峰体):
school = 'oldboy'  # 定义变量(给类添加属性)
    
    def choose_course(self):  # 定义在类内部的函数一般称为方法(给类增加技能)
        pass
 #--

class Student:
    school = 'oldboy'
    def __init__(self, name, height, weight, age):
        self.name = name
        self.height = height
        self.weight = weight
        self.age = age

    def choose_course(self):
        print(f'{self.name}正在选课')
        
stu_dict = Student.__dict__
#获取类的所有属性和方法--用字典的形式
print(stu_dict)
print(stu_dict['school'])


--注释:
--》函数定义阶段:只检测语法是否出错,并不执行
--》在类定义阶段:执行代码


#定义对象(实例化一个对象)
stum1=Studdent()
--self-->实例化的对象
stum1.school
#对象在调用内的方法时,不朽添加参数,python会自动添加实例化对象传给self
#为对象添加特征
--init()->给对象添加对象独有特征的函数
class Student():
    school = 'oldboy'

    def __init__(self, name, height, weight):
        print(self)
        self.name = name  # self = stu1 --> stu1.name = '小王'
        self.height = height
        self.weight = weight

    def choose_course(self):
        print('正在选课')
--注释:
传入的参数数量必须要和函数的形参数量一样
#类和数据类型
lt=list[]/dict{}/int()
--都是一个个对象
python中一切皆对象,一切皆数据类型

作为对象(特点):
 1. 引用  x = 10 ; y = x
 2. 作为容器类元素 lis = [x,func,Student]
 3. 作为函数参数 def func(x, func, Student)
 4. 作为函数返回值 return x,func,Student



#冒泡算法:
def sort(lis):
    print(1, lis)
    for i in range(len(lis)):  
        for j in range(len(lis)): 
            if lis[i] < lis[j]:
                lis[i], lis[j] = lis[j], lis[i]#-->(i,j=j,i)

    print(2, lis)

lis = [3, 2, 1]
sort(lis)

'''
# 最the most simply的算法()
[3, 2, 1]
i = 3 j= 3
i = 3 j =2
i = 3 j= 1

i = 2 j= 3  [3, 2, 1]->[2,3,1]
i = 2 j=2
i = 2 j= 1 

i = 1 j= 3  [2,3,1] ->[2,1,3]
i = 1 j= 2  [2,1,3]->[1,2,3]
i = 1 j = 1  
'''
原文地址:https://www.cnblogs.com/shaozheng/p/11453383.html