• 面向过程和面向对象


    面向过程编程

    面向(对着)--> 过程(流程/步骤)--> 编程(码代码)

    IPO

    Input(输入)-->>Process(过程/处理)--> Output(输出)

    未来码代码的目的:输入一些变量,然后会通过一些列步骤改变变量,然后得到想要的结果

    def compare2(x, y):
        if x > y:
            return x
        else:
            return y
    
    x = input('请输入一个数:')
    y = input('请输入另一个数:')
    res = compare2(x, y)
    print(res)
    

    面向过程编程:按特定的步骤,一个个函数,上一个函数的输出是下一个函数的输入

    • 优点:代码的独立性提高了,流程清晰
    • 缺点:一个错误,整个程序会崩掉

    编程

    控制变量不断地变化

    怎么找bug

    x = 10
    y = 20
    
    # 流程1
    # 变量每变化一次,就打印一次
    # 流程2
    
    ……
    # 流程(方法有很多种)  需求的实现是多样化的,没有唯一解
    
    1. 定位bug,不一定就是那一行出错了
    2. 打印变量变化的状态,判断该流程是否有问题

    面向对象编程

    • 对象与对象之间交互
    • 优点:一个对象的变化不会对其他对象产生影响
    • 缺点:编程的复杂度远高于面向过程

    类和对象

    类:(模板/类别)划分了对象,具有相同属性和技能的对象属于同一类

    在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也一定有类这个概念,但是在Python程序中:必须先定义类,然后调用类来产生对象。

    python中的类

    class Student():    # 定义了学生类
        def __init__(self, name, age, height, weight):
            self.age = age
            self.name = name
            self.height = height
            self.weight = weight
    
        def choose_course(self):
            print(f'{self}正在选课')
    
    cwz = Student('cwz', 18, 180, 140)
    print(cwz.name)
    print(cwz.age)
    print(cwz.height)
    print(cwz.weight)
    

    定义类:

    class Student():
        '''注释:定义类'''
        school = 'oldboy'
        def choose_course(self):
            print('正在选课')
    

    定义对象

    调用类即可产生对象,调用类的过程又称为类的实例化

    class Student():
        '''注释:定义类'''
        school = 'oldboy'
        def choose_course(self):
            print('正在选课')
    
    
    stu1=Student()   # 实例化对象,stu1就是一个对象
    print(stu1.school)
    stu2 = Student()
    stu2.choose_course()   
    # 对象使用类的方法,不需要加参数,因为实例化对象调用该方法时,python会自动将该实例化对象传给self
    
    # 输出结果:
    oldboy
    正在选课
    

    类中定义变量使用驼峰体

    类定义阶段,会执行代码

    定制对象独有特征

    class Student():
        '''注释:定义类'''
        school = 'oldboy'
        def choose_course(self):
            print(self)
            print('正在选课')
    
    def init(obj, name, height, weight):
        obj.name = name
        obj.weight = weight
        obj.height = height
        
    stu2 = Student()
    init(stu2, 'neo', 190, 180)   # init是用来给对象添加独有特征的函数
    print(stu2.name)
    

    定义__init__方法

    class Student():
        def __init__(self, name, age, height, weight):
            self.age = age
            self.name = name
            self.height = height
            self.weight = weight
    
        def choose_course(self):
            print(f'{self.name}正在选课')
    
    neo = Student('neo', 18, 180, 140)
    print(neo.name)
    print(neo.age)
    print(neo.height)
    print(neo.weight)
    neo.choose_course()
    

    python中一切皆对象,一切皆数据类型

    作为对象:

    1. 引用 x = 10 y = x
    2. 作为容器类元素 lt = [x, func, Student]
    3. 作为函数参数 def func(x, func, Student)
    4. 作为函数返回值 return x, func, Studnet
  • 相关阅读:
    activemq的两种基本通信方式的使用及总结
    EJBCA认证系统结构及相关介绍
    白话经典算法系列之一 冒泡排序的三种实现 【转】
    springcloud配置需要主要的地方
    Spring的RestTemplate
    mysql中的事务
    list去重
    webpack的使用
    rocketmq在linux搭建双master遇到的坑
    redis配置文件详解
  • 原文地址:https://www.cnblogs.com/setcreed/p/11454734.html
Copyright © 2020-2023  润新知