美文网首页
内置方法

内置方法

作者: 慕知 | 来源:发表于2021-12-20 14:37 被阅读0次

    一,内置方法

    # 1、什么是内置方法?
    # 定义在类内部,以__开头并以__结果的方法
    # 特点:会在某种情况下自动触发执行
    
    # 2、为何要用内置方法?
    # 为了定制化我们的类or对象
    
    # 3、如何使用内置方法
    # __str__:在打印对象时会自动触发,然后将返回值(必须是字符串类型)当做本次打印的结果输出
    ## 示例1:
    class People:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __str__(self):
            print('运行了...')
            return "<%s:%s>" %(self.name,self.age)
    
    
    obj = People('辣白菜同学', 18)
    
    print(obj.__str__()) 等同于   print(obj)
    
    print(obj.__str__())    # 调用的时候加上return返回值,只能是字符串
    #  <辣白菜同学:18>
    
    # print(obj)
    #  <辣白菜同学:18>
    
    # 示例2
    obj1=int(10)
    print(obj1)               # 10
    print(obj1.__str__())     # 10
    
    
    
    
    
    __del__:在清理对象时触发,会先执行该方法
    # 示例1)
    class People:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __del__(self):
            print('run...')
    
    obj = People('辣白菜同学', 18)
    print('============>')       # 注意这个时候输出的结果============>在前,run...在后,即__del__(self)后执行
    # ============>
    # run...
    
    
    # 示例2)
    class People:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def __del__(self):
            print('run...')
    
    obj = People('辣白菜同学', 18)
    del obj # obj.__del__()     # 增加了   del obj
    print('============>')   # 注意这个时候输出的结果run...在前,============>在后,即__del__(self)先执行
    # run...
    # ============>
    
    # PS: 在执行del obj后,执行print(obj)便会报错
    #总结:示例2中执行了del obj,触发了__del__,所以会先执行__del__下的print('run...')
    
    
    
    
    # 示例3:适用环境,比如打开某个文件执行,程序结束关闭文件节约系统资源
    class People:
        def __init__(self, name, age):
            self.name = name
            self.age = age
            self.x = open('a.txt',mode='w')
            # self.x = 占据的是操作系统资源
    
        def __del__(self):
            print('run...')
            # 发起系统调用,告诉操作系统回收相关的系统资源
            self.x.close()
    
    obj = People('辣白菜同学', 18)
    del obj # obj.__del__()
    print('============>')
    # run...
    # ============>
    

    相关文章

      网友评论

          本文标题:内置方法

          本文链接:https://www.haomeiwen.com/subject/qmizgltx.html