首页 > 其他分享 >特殊功能的函数(魔法方法)

特殊功能的函数(魔法方法)

时间:2022-11-20 23:56:17浏览次数:38  
标签:__ 特殊 函数 self 魔法 init print washer def

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

1、_init_()

1.1 体验_init_()

  作用:初始化对象

 

# 目标:定义init魔法方法设置初始化属性,并访问调用
"""
1. 定义类
    init魔法方法:width 和 height
    添加实例方法:访问实例属性
2. 创建对象
3. 验证成果
    调用实例方法
"""

class washer():
    # 定义初始化功能的函数
    def __init__(self):
        # 添加实例属性
        self.width = 500
        self.height = 800

    def print_info(self):
        # 类里面调用实例属性
        print(f'洗衣机宽度是:{self.width}')
        print(f'洗衣机高度是:{self.height}')
# 创建对象
haier = washer()

haier.print_info()

 

  注意:

    1. _init_()方法,在创建一个对象时默认被调用,不需要手动调用。

    2. _init_(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。

1.2 带参数的_init_()

# 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()

haier2 = washer(100, 200)
haier2.print_info()

2、_str_()

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

class washer():
    def __init__(self):
        self.whdth = 300

    def __str__(self):
        return '解释说明:类的说明或对象状态的说明'


haier = washer()
# 解释说明:类的说明或对象状态的说明
print(haier)

3、_del_()

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

class washer():
    def __init__(self):
        self.whdth = 300

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

haier = washer()

# 这行有没有都可以,因为代码往下运行时已经默认运行了删除对象操作
del haier

 

标签:__,特殊,函数,self,魔法,init,print,washer,def
From: https://www.cnblogs.com/yz-b/p/16909941.html

相关文章

  • Python学习笔记:timedelta类相关函数
    一、介绍timedelta类表示时间差,可以直接实例化,也可以由两个datetime类型的数据作差得到。缘起于求两个时间差,并需要转换为特定的单位(天、小时、分钟等),遂产生此需求。......
  • 工具函数实现多个组件的共同需求
    例子:验证手机号的正则表达式验证用户名是否复合规范复用度相当高的函数等等 1.定义函数一般会在src下新建untils文件夹untils=>index.js使用正......
  • python函数进阶
    #1.函数的作用域#全局变量的作用域:#一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。#全局变量所有作用域都可用,局部变量只能在本函数可......
  • python算法题1:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标
    题目:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值index1和index2,其中index1必须小于index2。 说明: ......
  • Java 函数式编程「二」
    接上回,聊聊函子functor。functor是一个容器。该容器的value属性指向被包裹的数据;该容器的map方法对容器进行映射变换。以下代码实现一个最普通的functor,称之为J......
  • 习以为常的vba函数Format居然可以四则运算
    今天和朋友无意中聊起,他提到,format函数可以做运算。一测试,果然可以。而且支持四则运算,但不支持函数等。SubTest()MsgBoxFormat(1+1+2,"0.00")endsub......
  • 简单函数
    【【【2013-9-13】】】--模糊查询关键字 like--与通配符联合使用('_'任意一个字符;'%'任意长度的字符;转义字符'/'和关键字escape联用)select*from......
  • pandas 函数
    pandas函数最近在对股票数据进行清洗和计算的过程中,遇到了不少对这个库函数的使用,所以做了个函数使用总结。轴的理解pandas很多函数会指定轴,要正确理解轴的含义,才容易......
  • 45.自定义函数实现分组统计
    #自定义函数实现分组统计#能过自定义的函数实现分组统计importpandasaspddf=pd.read_excel('电脑配件销售记录.xlsx')#print(df.head()))#回顾知识点#p......
  • django-视图函数
    django中的视图函数分为两类,CBV和FBV FBV:一条路由对应一个函数 CBV:一条路由对应一个类,该类必须继承fromdjango.viewsimportView类urlpatterns=[re_path(......