Python学习日记(初级篇02面向对象之基础)——黑马程序员视频学习笔记

Python面向对象1/4

  • 一、理解面向对象
  • 二、理解类和对象
    • 2.1理解类和对象
    • 2.2面向对象实现方法
  • 三、添加和获取对象属性
    • 3.1类外面添加对象属性
    • 3.2类外面获取象属性
    • 3.3类里面获取对象属性
  • 四、魔法方法
    • 4.1__init__()
      • 4.1.1体验__init__()
      • 4.1.2带参数的__init__()
    • 4.2__str__()
    • 4.3__del__()
  • 五、综合应用
    • 5.1烤地瓜
    • 5.2搬家具

一、理解面向对象

  • 对于面向过程的思想: 需要实现一个功能的时候,看重的是开发的步骤和过程,每一个步骤都需要自己亲力亲为,需要自己编写代码(自己来做)。开发中小型项目的效率很高。

  • 对于面向对象的思想:当需要实现一个功能的时候,看重的并不是过程和步骤,而是关心谁帮我做这件事(偷懒,找人帮我做)。更加适合用于大型开发场景。

  面向对象的三大特征有:封装性、继承性、多态性。(同样这也是C++的三大特征)

二、理解类和对象

  类与对象的关系:用类去创建对象

2.1理解类和对象

  类是对一系列具有相同特征行为的事物的统称,是一个抽象的概念。

  • 特征即是属性–变量
  • 行为即是方法–函数

2.2面向对象实现方法

  • 定义类 语法
class 类名():
    代码
    ......

类的命令要符合大驼峰命名习惯

  • 创建对象 语法
对象名 = 类名()
  • 体验
class Washer():
    def wash(self):
        print('能洗衣服')


haier = Washer()
haier.wash()  # 能洗衣服
  • self指的是调用该函数的对象
class Washer():
    def wash(self):
        print('wash clothes')
        print(self)


haier = Washer()
print(haier)
haier.wash()
# <__main__.Washer object at 0x000002736D2B0190>
# wash clothes
# <__main__.Washer object at 0x000002736D2B0190>

三、添加和获取对象属性

  属性即是特征,对象属性在类的内外都能添加与获取。

3.1类外面添加对象属性

  • 语法
对象.属性名 =
  • 体验
haier1.width = 500
haier1.height = 800

3.2类外面获取象属性

  • 语法
对象.属性名
  • 体验
print(f'洗衣机的宽度为{haier1.width}', end=',')
print(f'洗衣机的高度为{haier1.height}')

3.3类里面获取对象属性

  • 语法
self.属性名
  • 体验
class Washer():
    def wash(self):
        print('洗衣服')
    def print_info(self):
        print(self.width)


haier1 = Washer()
haier1.width = 500
haier1.height = 800
haier1.print_info()

四、魔法方法

  在Python中,_xx_()的函数叫做魔法方法,指的是具有特殊功能的函数。

4.1__init__()

4.1.1体验__init__()

  __init__()方法的作用:初始化对象。

  • __init__()方法,在创建对象时默认被调用,不需要手动调用。
  • __init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。
class Washer():
    def __init__(self):
        self.width = 500
        self.height = 800

    def print_info(self):
        print(f'洗衣机的宽度是{self.width},高度是{self.height}')


haier = Washer()
haier.print_info()

4.1.2带参数的__init__()

目的:传参数

class Washer():
    def __init__(self, width, height=800):
        self.width = width
        self.height = height

    def print_info(self):
        print(f'洗衣机的宽度是{self.width},高度是{self.height}')


haier = Washer(500, )
haier.print_info()

4.2__str__()

  • 当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__()方法,那么就会打印从在这个方法中return的数据。
class Washer():
    def __init__(self, width, height=800):
        self.width = width
        self.height = height

    def __str__(self):
        return '这是海尔洗衣机的说明书!'


haier = Washer(500, )
print(haier)  # 这是海尔洗衣机的说明书!

4.3__del__()

  • 当删除对象时,python解释器也会默认调用__del__()方法。和C++简直一毛一样!(虽然是很久之前学的了。)
class Washer():
    def __init__(self, width, height=800):
        self.width = width
        self.height = height

    def __str__(self):
        return '洗衣机说明书'

    def __del__(self):
        print(f'{self}对象已经被删除')


haier_temp = Washer(10)
print(haier_temp.width)
# 10
# 洗衣机说明书对象已经被删除

五、综合应用

5.1烤地瓜

5.2搬家具

你可能感兴趣的:(Python,python,学习,开发语言)