zoukankan      html  css  js  c++  java
  • 类的内置方法

    类的内置方法

    1 类内置方法的定义

    定义在类内部,以双下划线开头并以双下划线结尾的方法
    特点:会在某种情况下自动触发执行

    如__init__会在调用类,产生对象时自动执行

    2 类内置方法的作用

    定制化我们的类or对象

    3 类部分内置函数

    3.1 __str__

    __str__在打印对象时会自动触发,然后将返回值(必须是字符串类型)当做本次打印的结果输出

    class People:
        def __init__(self, name, age):
            self.name = name
            self.age = age
        def __str__(self):
            print('运行了...')		# 不应有return以外的代码,此处为了标识该函数执行
            return "<%s:%s>" %(self.name,self.age)
        
        
    obj1=int(10)
    print(obj1)		# 按之前学的内容,如果print(obj) 原本应该输出obj的内存地址
    # 结果:10	,是因为__str__
    
    
    
    obj = People('辣白菜同学', 18)
    # 按之前学的内容,如果print(obj) 应该输出一个内存地址
    print(obj)	# 相当于print(obj.__str__())
    
    # 运行了...
    # <辣白菜同学:18>
    

    3.2 __del__

    __del__会在清理对象时触发,会先执行该方法

    一般用于发起系统调用,告诉操作系统回收相关的操作系统内存空间

    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__()		run...    
    # 如果不执行del obj也会在程序结束时自动进行del操作,执行__del__代码
    print('============>')
    
    # 如果不执行del obj,会输出
    # ============>
    # run...
    

    3.3 其余部分

    参考https://www.cnblogs.com/linhaifeng/articles/6204014.html#_label3

  • 相关阅读:
    CentOS 7安装配置FTP服务器
    Python验证码
    Eclipse快捷键
    mybatis中的#和$的区别
    spring framework 各版本源码下载地址
    maven的pom.xml文件标签含义
    maven学习笔记
    (转)C#调用非托管Win 32 DLL
    (转)读取XML数据到treeView中
    SpringSecurity学习二----------实现自定义登录界面
  • 原文地址:https://www.cnblogs.com/achai222/p/12709507.html
Copyright © 2011-2022 走看看