zoukankan      html  css  js  c++  java
  • __str__,__del__,exec的用法

    __str__,__del__,exec的用法和__call__方法

    这些方法都是class内置的方法

    1、__str__

    class People:
        def __init__(self,name,age,sex)
            self.name=name
            self.age=age
            self.sex=sex
    obj=People('egon',18,'male')
    print(obj) #   <__main__.People object at 0x10f0c2438>
    打印出来的就是一个内存地址不是我们想要的信息。那么我们就需要提供一个内置方法。
    class People:
        def __init__(self,name,age,sex)
            self.name=name
            self.age=age
            self.sex=sex
        def __str__(self):
            return "<名字:%s  年龄:%s 性别:%s>"%(self.name,self.age,self.sex))
            #这里不仅可以返回你想要的值,还可以指定放进去方法
        
        
    obj=People('egon',18,'male')
    print(obj)

    __del__的方法(删除方法)

    class People:
        def __init__(self, name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
        def__del__(self):#在对象被删除的条件下,自动执行
            print('__del__')   
    obj=People('egon',18,'male')
    del obj. #obj.__del__()
    time.sleep(5)
    #这个删除操作会涉及到资源回收问题,但涉及到文件时候的删除就要把文件关闭

    class MyOpen:
      def __init__(self,filepath,mode="r",encoding="utf-8"):
        self.filepath=filepath
        self.mode=mode
        self.encoding=encoding
        self.fobj=open(filepath,mode=mode,encoding=encoding)

    
    

      def __str__(self):
        msg="""
        filepath:%s
        mode:%s
        encoding:%s
          """ %(self.filepath,self.mode,self.encoding)
        return msg

    
    

       def __del__(self):
        self.fobj.close()#关闭文件

    
    
     

    exec专门用来执行字符串中的代码

    code='''
    global x
    x=1
    y=2
    '''
    #只要不声明那就是局部的
    #global_dic={}
    #local_dic={}
    #exec(code, global_dic,loacl_dic)
    exec(code,{},{})
    #第一个{}是全局变量。第二个是{}局部变量
    print(global_dic)
  • 相关阅读:
    HTML 5 标准属性
    启程
    【Java】自定义登陆拦截器
    【Java】将List中的实体按照某个字段进行分组的算法
    SpringBoot + MultipartFile 实现文件上传以及文件转移的功能以及配置全局捕获上传文件过大异常
    MySQL查询两门及两门以上不及格的学生,显示姓名
    java中可以用==来比较两个字符串是否相等吗
    自己动手Jquery插件
    10个可以直接拿来用的JQuery代码片段
    linux 安装python
  • 原文地址:https://www.cnblogs.com/wuchenyu/p/8868930.html
Copyright © 2011-2022 走看看