【Python】面向对象--02(魔法方法)

本文讲解了面向对象编程中的魔法方法,如__init__用于初始化属性,__str__用于生成对象的字符串表示。通过实例演示了如何在Rectangle类中运用这些方法。实践操作建议通过代码实验来加深理解。
摘要由CSDN通过智能技术生成

Hello,大家好,我是乔乔白术,今天是带来面向对象的第二篇内容。今天带来的是面向对象中的魔法方法,想了解之前的内容,可以点击上面的合计,里面就有详细内容。

魔法方法:

魔法函数名字是固定的。一般情况下我们不需要通过明显的方式调用它们,但是它们会在特定阶段自动执行。

例如

__init__()
__str__()

注意: _(这是一个_)__(是连个_)只不过最后连用看不出来,但是要记住。

__init__函数,它可以在实例化对象的时候修改属性的值。

我们看个例子

class Rectangle:
 length = 0
 width = 0

def __init__(self, length, width):
    self.length = length


    self.width = width


def area(rect):
    return rect.length * rect.width


def perimeter(rect):
    return 2 * (rect.length + rect.width)

rect = Rectangle(3,4) # 当创建对象时,__init__函数被自动调用,3和4会创给length和width.
print(rect.length,rect.width)
print(rect.area())

魔法函数写在类里面,所以init函数的至少有一个参数self。

通过参数给要修改的属性传参,一般参数名往往和属性名一致

一旦写了__init__函数,并且__init__函数除了self以外还有其他参数,就需要为__init__函数除了self以外的参数传入值。

也可以给__init__函数的参数设置默认值。

__str__函数,该函数要求返回一个字符串,这个字符串的信息要能够把对象的信息组织起来,

当我们使用print函数打印对象的时候,实际上打印的就是__str__函数返回的字符串。

class Rectangle:
    length = 0
    width = 0

    def __init__(self, length=0, width=0):
        self.length = length
        self.width = width
    def area(rect):
        return rect.length * rect.width

    def perimeter(rect):
        return 2 * (rect.length + rect.width

    def __str__(self):
        return '长方形的长是' + str(self.length) + ',宽是' + str(self.width)

rect = Rectangle(3, 4)
print(rect)

这就是魔法方法相关的内容,这部分我个人觉得还是需要自己多多练习,所以如果还是不明白,就将这上面的代码粘贴到你的编辑器里,然后运行一下,多看看,多试试,就理解了。

明天将带来面向对象的封装相关内容,大家多多期待哟!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值