博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类的内置方法
阅读量:4361 次
发布时间:2019-06-07

本文共 1772 字,大约阅读时间需要 5 分钟。

类内置方法

1. __ str__

前后带杠杠的都是特殊的内置函数 会在某些时机自动执行 一般情况我们不应该直接调用他们

当我们需要自定义打印显示内容时 就需要实现__str__方法

该方法 必须 返回一个字符串 返回的是什么 打印出来就是什么

class Test:    def __init__(self,name):        self.name = name    def __str__(self):        print("str run....")        return self.namet = Test("安米")print(t)#上下两个是一样的..print(t.__str__())# 在讲一个对象转换字符串时  本质就是在调用这个对象 __str__方法print(str(t))

2. __ dir__

  1. 当对象被从内存中删除时会自动执行
  2. 另一种情况时 程序员手动删除了这个对象 也会自动执行

什么时候使用它

在python中 有自动内存管理机制 所以 python自己创建的数据 不需要我们做任何操作
但是有一种情况 我们使用python打开了一个不属于python管理的数据
(比如打开了一个文件 这个文件一定是操作系统在打开 会占用系统内存 而python解释器无法操作系统内存的)

所以 当你的python解释器运行结束后 文件依然处于打开状态 这时候就需要使用__del__来关闭系统资源

简单地说 当程序运行结束时 需要做一些清理操作 就使用__del__

__del__也称之为 析构函数

即:分析构造 并拆除这个对象

class Student:    def __del__(self):        print("对象被删除了....")stu = Student()# 手动删除 立即执行__del__del stuimport timetime.sleep(5)print('太迟了,对象已被删除')

'

class TextFile:    def __init__(self,filepath,mode="rt",encoding="utf-8"):        self.file = open(filepath,mode=mode,encoding=encoding)    def read(self):        return self.file.read()    def write(self,text):        self.file.write(text)    # 该方法其实就是一个通知性质 仅仅是告诉程序员 对象即将被删除    def __del__(self):        # 在这里关闭系统的文件 妥妥的        self.file.close()

3. exec

"""

exec
execute的缩写
表示执行的意思

其作用 是帮你解析执行python代码 并且将得到的名称 存储到制定的名称空间  解释器内部也是调用它来执行代码的

"""

# 参数一 需要一个字符串对象 表示需要被执行的python语句
# 参数二 是一个字典 表示全局名称空间
# 参数三 也是一个字典 表示局部名称空间

globalsdic = {}localsdic = {}exec("""aaaaaaaaaaaaaaaaaaaa = 1bbbbbbbbbbbbbbbbbbbbbbbbbbbb = 2def func1():    print("我是func1")""",globalsdic,localsdic)# 如果同时制定了 全局和局部 则 会字符串中包含名称 解析后存到局部中# print(globalsdic)print(localsdic)localsdic["func1"]()# # 如果只传了一个传参数 则 将字符串中包含名称 解析后存到全局中# exec("""# aaaaaaaaaaaaaaaaaaaa = 1# bbbbbbbbbbbbbbbbbbbbbbbbbbbb = 2## """,localsdic)

转载于:https://www.cnblogs.com/hldnn/p/10146645.html

你可能感兴趣的文章
创建一个dynamics 365 CRM online plugin (十二) - Asynchronous Plugins
查看>>
Eclipse 常用快捷键 (动画讲解)
查看>>
233 Matrix(矩阵快速幂+思维)
查看>>
Leetcode-Unique Binary Search Trees II
查看>>
Centos7系统下安装Docker
查看>>
PostgreSQL 序列(SEQUENCE)
查看>>
Missing Number
查看>>
Ionic3 demo TallyBook 实例3
查看>>
laravel服务容器
查看>>
Entity Framework的查询
查看>>
ZH奶酪:Python按行读取文件
查看>>
07-使用循环进行遍历数组(运算符)
查看>>
控件布局通用解决方案
查看>>
scala流程控制语句以及方法和函数
查看>>
MySQL的sql_mode模式
查看>>
windows命令——explorer
查看>>
<转载>Bootstrap 入门教程 http://www.cnblogs.com/ventlam/archive/2012/05/28/2520703.html 系列...
查看>>
jquery和js cookie的使用解析
查看>>
类的内置方法
查看>>
世界是数字的 读后感
查看>>