zoukankan      html  css  js  c++  java
  • 寒假自学(四)

    希望所有温柔又可爱的人最后都能幸福❤

    今日总结:

    代码量 200行
    博客量 一篇
    所学时间 4小时左右
    了解到的知识点 python面向对象基础

    明日计划:

    早上 python面向对象封装
    下午 python面向对象封装
    晚上

    具体内容:

    面向对象(OPP)

    过程和函数

    • 过程是早期的一个编程概念
    • 过程类似于函数,只能执行,但没有返回值
    • 函数不仅能执行,还可以返回结果

    面向过程的特点

    1. 注重步骤与过程,不注重职责分工
    2. 如果需求复杂,代码会变得很复杂
    3. 开发复杂项目,没有固定的套路,开发难度很大!

    面向对象的特点

    相比较函数,面向对象更大封装,根据职责一个对象中封装多个方法

    1. 注重对象和职责,不同的对象承担不同的职责
    2. 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路
    3. 需要在面向对象基础上,再学习一些面向对象的语法

    类和对象

    • 是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用
      • 特征被称为属性
      • 行为被称为方法
    • 类就相当于制造飞机时的图纸,是一个模板,是负责创建对象的

    对象

    • 对象由类创建出来的一个具体存在,可以直接使用

    • 哪一个类创建出来的对象,就拥有在哪一个类中定义的:

      • 属性
      • 方法
    • 对象就相当于用图纸制造的飞机

    在程序开发中,应该先有类,再有对象

    • 只有一个,而对象可以有很多个
      • 不同的对象之间属性可能各不相同

    在程序开发中,要设计一个类,通常需要满足以下三个要素:

    1. 类名这类事物的名字,满足大驼峰命名法
    2. 属性这类事物具有什么样的特征
    3. 方法这类事物具有什么样的行为

    需求中没有涉及的属性或者方法在设计类时,不需要考虑

    面向对象语法基础

    python中对象无处不在,我们之前学的变量、数据、函数都是对象

    使用内置函数dir传入标识符/数据,可以查看对象内的所有属性及方法

    1. 定义一个猫类Cat
    2. 定义两个方法eatdrink
    3. 按照需求--不需要定义属性
    class Cat:
        def eat(self):
            print("小猫爱吃鱼")
    
        def drink(self):
            print("小猫爱喝水")
    
    
    tom = Cat()
    
    tom.drink()
    tom.eat()
    print(tom)
    addr = id(tom)
    print("%x" % addr)
    
    

    引用

    在面向对象开发中,引用的概念是同样适用的!

    python中使用类创建对象之后tom变量中仍然记录的是对象在内存中的地址

    在计算机中通常使用16进制表示内存地址

    • %d可以以10进制输出数字
    • %x可以以16进制输出数字

    使用同一个类创建出来的对象并不是同一个对象

    class Cat:
        def eat(self):
            print("小猫爱吃鱼")
    
        def drink(self):
            print("小猫爱喝水")
    
    
    tom = Cat()
    
    tom.drink()
    tom.eat()
    
    lazy_cat = Cat()
    
    lazy_cat.eat()
    lazy_cat.drink()
    lazy_cat2 = lazy_cat
    print(tom)
    print(lazy_cat)
    print(lazy_cat2)
    

    方法种的self参数

    • self是调用该方法的对象的引用

      • 使用self.访问对象的属性
      • 也可以通过self.来调用其他方法
    • 在日常开发中,不推荐在类的外部给对象增加属性

      • 在运行时,如果没有找到该属性,程序会报错
    • 对象应该包含哪些属性,应该封装在类的内部

    初始化方法:_init__init_是对象的内置方法

    • _init_方法是专门用来定义一个类具有哪些属性的方法!

    使用类名创建对象时,会自动执行以下操作:

    class Cat:
        def __init__(self):
            print("这是一个初始化方法")
    
    
    tom = Cat()
    

    初始化方法改造:

    class Cat:
        def __init__(self, new_name):
            # print("这是一个初始化方法")
            # self.name = "Tom"
            self.name = new_name
    
        def eat(self):
            print("%s 爱吃鱼" % self.name)
    
    
    tom = Cat("Tom")
    print(tom.name)
    
    lazy_cat = Cat("大懒猫")
    lazy_cat.eat()
    

    内置方法和属性

    1._del_方法

    • python中,当一个对象从内存中销毁前,会自动调用_del_方法
    class Cat:
        def __init__(self, new_name):
            self.name = new_name
    
            print("%s 来了" % self.name)
    
        def __del__(self):
            print("%s 去了" % self.name)
    
    
    # tom是全局变量
    tom = Cat("Tom")
    print(tom.name)
    # del关键字可以删除一个对象
    del tom
    
    print("-" * 50)
    

    一个对象的_del_方法一旦被调用,生命周期结束

  • 相关阅读:
    Python open 读和写
    Sublime Text的使用
    解决MySQL Workbench导出乱码问题
    统计学(一)
    pymysql使用(二)
    使用pymysql(使用一)
    2个Excel表格核对技巧
    用Python读写Excel文件的方式比较
    从零上手Python关键代码
    php面试
  • 原文地址:https://www.cnblogs.com/125418a/p/14280115.html
Copyright © 2011-2022 走看看