day13_面向对象初识

什么是面向对象

面向对象是一种抽象化的编程思想,很多编程语言中都有的一种思想。 面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事

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

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

定义类语法如下:

对象

对象是类创建出来的真实存在的事物。开发中,先有类,再有对象 类和对象的关系:用类去创建一个对象。类有什么,对象就有什么。创建对象的过程也叫实例化对象。

语法如下:

代码示例

# 自定义手机类
class Phone():
    def call(self):
        print("打电话")


# 2. 创建对象
xiaoMi = Phone()

# 使用功能 -- 实例方法/对象方法 -- 对象名.函数名称()
xiaoMi.call() # 打电话

self

  • self指的是调用该函数的对象。打印对象和self得到的结果是一致的,都是当前对象的内存中存储地址。
  •  一个类可以创建无数个对象。多个对象都调用函数的时候,self地址是不相同。

添加和获取对象属性

属性即是特征,比如:洗衣机的宽度、高度、重量...对象属性既可以在类外面添加和获取,也能在类里面添加和获取。

类外面添加对象属性,语法如下

在类的外面获取对象属性,语法如下

示例

# 自定义手机类
class Phone():
    def call(self):
        print("打电话")
        print(self)


# 2. 创建对象
xiaoMi = Phone()
# xiaoMi对象添加价格属性
xiaoMi.price = 8888
# 类外面获取对象属性
print(f"小米手机的价格是{xiaoMi.price}元") # 小米手机的价格是8888元

类里面获取对象属性,语法如下

 代码示例

class Washer():
    def wash(self):
        print('洗衣服')

    # 获取实例属性
    def print_info(self):
        # self.属性名
        # print(self.width)
        print(f'洗衣机的宽度是{self.width}')
        print(f'洗衣机的高度是{self.height}')


haier1 = Washer()

# 添加属性
haier1.width = 400
haier1.height = 500

# 对象调用实例方法
haier1.print_info()


魔法方法

在Python中,__xx__()的函数叫做魔法方法,指的是具有特殊功能的函数。最常用的有以下几个

__init__()方法

  • __init__()方法,在创建一个对象时默认被调用,不需要手动调用
  • __init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去

代码示例

# 自定义手机类,并且初始化为红色
class Phone():
    def __init__(self):
        # 添加实例属性
        self.red = "红色"

    def show(self):
        # 访问实例属性
        print(self.red)


# 创建对象
xm = Phone()
# 对象调用实例方法
xm.show()  # 红色

一个类可以创建多个对象,如何对不同的对象设置不同的初始化属性呢? 传参数。方法定义了参数调用的时候就必须传参数,且个数必须一致。

# 1. 定义类:带参数的init:宽度和高度; 实例方法:调用实例属性
class Washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height

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


# 2. 创建对象,创建多个对象且属性值不同;调用实例方法
haier1 = Washer(10, 20)
haier1.print_info()  # 洗衣机的宽度是10, 洗衣机的高度是20

haier2 = Washer(100, 200)
haier2.print_info()  # 洗衣机的宽度是100, 洗衣机的高度是200

__str__( )方法

当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__方法,那么就会打印从在这个方法中 return 的数据。

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

__del__( )方法

当删除对象时,python解释器也会默认调用__del__()方法。

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

你可能感兴趣的:(#,二:python入门,python)