侧边栏壁纸
  • 累计撰写 123 篇文章
  • 累计创建 27 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

面向对象基础

梁来福
2022-02-23 / 0 评论 / 0 点赞 / 0 阅读 / 4274 字
温馨提示:
本文最后更新于 2024-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

面向对象实现方法

定义类

语法

class 类名():
    代码
    ........

注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯

示例代码

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

创建对象

对象又名实例

语法

对象名 = 类名()

示例代码

haier = Xi()
print(haier)
haier.wash()

输出

<main.Xi object at 0x10f205fd0>
洗衣服

self

self是指调用该函数的对象

代码

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

haier = Washer()

print(haier)
haier.wash()

输出

<main.Washer object at 0x107a27fd0>
洗衣服
<main.Washer object at 0x107a27fd0>

结论

由于打印对象和打印self得到的内存地址相同,所以self指的是调用该函数的对象

一个类创建多个对象

示例代码

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

haier1 = Washer()
haier1.wash()

haier2 = Washer()
haier2.wash()

输出

洗衣服
<main.Washer object at 0x107d6dfd0>
洗衣服
<main.Washer object at 0x107d6df70>

添加和获取对象属性

属性即是特征

类外面添加对象属性

语法

对象名.属性名 = 值

示例

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

haier1 = Washer()
haier1.width = 100
haier1.height = 200

类外面获取对象属性

语法

对象名.属性名

示例

print(f"洗衣服的宽度是:{haier1.width}")
print(f"洗衣服的高度是:{haier1.height}")

输出

洗衣服的宽度是:100
洗衣服的高度是:200

类里面获取对象属性

语法

self.属性名

示例

# 定义类
class Washer():
    def wash(self):
        # 类里面获取实例属性
        print(f"洗衣服的宽度是:{self.width}")
        print(f"洗衣服的高度是:{self.height}")

# 创建对象
haier1 = Washer()

# 添加实例属性
haier1.width = 100
haier1.height = 200

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

输出

洗衣服的宽度是:100
洗衣服的高度是:200

魔法方法

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

代码示例

class Washer():
    def __init__(self):
        # 添加实例属性
        self.width = 500
        self.height = 600

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


haier = Washer()

haier.print_info()

输出

洗衣服的宽度是:500
洗衣服的高度是:600

注意点

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

带参数的_init_()

思考

一个类可以创建多个对象,如何对不同的对象设置不同的初始化属性呢?

回答

传参数

代码示例

# 定义类:带参数的init:宽度和高度
class Washer():
    def __init__(self, width, height):
        # 添加实例属性
        self.width = width
        self.height = height

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


# 创建多个对象且属性值不同
haier1 = Washer(10, 20)
haier2 = Washer(100, 200)

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

输出

洗衣服的宽度是:10,洗衣服的高度是:20
洗衣服的宽度是:100,洗衣服的高度是:200

魔法方法str

介绍

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

代码示例

class Washer():
    def __init__(self, width, height):

        self.width = width
        self.height = height

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

haier = Washer(100, 200)
print(haier)

输出

这是海尔洗衣机的说明书

魔法方法del

介绍

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

代码示例

class Washer():
    def __init__(self):

        self.width = 300

    def __del__(self):
        print("对象已经删除")


haier = Washer()

del haier

输出

对象已经删除

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论