python内置方法
2022-03-22 16:19
597 查看
一:内置方法
1.什么是内置方法?
定义在类内部,__开头并且__结尾的属性会在满足某种条件下自动触发
2.为何要用内置方法?
- 为了定制化我们的类or对象 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象
class Foo(object): pass obj = Foo() print(isinstance(obj,Foo)) # 判断obj是不是Foo的一个实例或者说对象 # True print(isinstance([1,2,3],list)) # 判断[1,2,3]是不是list的实例 # True
issubclass(sub, super)检查sub类是否是 super 类的派生类
class Foo(object): pass class Bar(Foo): pass print(issubclass(Foo,object)) # 判断Foo是不是object的子类 print(issubclass(Bar, Foo)) # 判断Bar是不是Foo的子类
__str__改变对象的字符串显示
class People: # 定义一个People类 def __init__(self,name,age): self.name = name self.age = age def __str__(self): # 打印对象自动触发 return "<%s:%s>" %(self.name,self.age) # 返回值 obj = People("egon",19) print(obj) # print(obj.__str__()) # <egon:19>
__del__是在删除对象时触发 __del__会在对象被删除时自动触发。由于Python自带的垃圾回收机制会自动清理Python程序的资源,所以当一个对象只占用应用程序级资源时,完全没必要为对象定制__del__方法,但在产生一个对象的同时涉及到申请系统资源(比如系统打开的文件)的情况下,关于系统资源的回收,Python的垃圾回收机制便派不上用场了,需要我们为对象定制该方法,用来在对象被删除时自动触发回收系统资源的操作
# 例1:应用程序 class People: def __init__(self,name,age): self.name = name self.age = age def __del__(self): # del obj在删除对象时会触发这个方法的运行 print('++++>') # del obj # 即使不运行删除对象代码,程序运行完回收应用程序的资源也会触发__del__运行 print('====end====') # 当这行代码运行完程序就结束了,结束了就会回收所有的应用程序资 # 源并自动清理所有的对象和内存地址 # 打印结果 # ====end===== # ++++> # 例2:操作系统 class People: def __init__(self,name,age): self.name = name self.age = age # 文件对象关联的是操作系统的资源一旦打开系统文件,就不会自己关,操作系统资源也不会自动回收 self.f = open('a.txt',mode='rt',encoding='utf-8') def __del__(self): # 这个时候就要用到__del__来清理操作系统资源了 self.f.close() obj = People("egon",19) # del obj print('====end====') # 当这行代码运行完程序就结束了,结束了就会清理对象的内存地址
相关文章推荐
- python3内置方法
- python中字符串的内置方法
- Python_List对象内置方法详解
- Python---数据类型内置/非内置方法
- Python 字符串内置方法大全
- python 函数内置方法short_desc
- 通过Python的内置字符串处理函数来处理字符串的方法和整理
- python列表内置类型方法
- Python中内置的函数(方法)
- Python字符串内置方法
- python类的属性、方法和内置方法
- 第014讲:字符串:各种奇葩的内置方法 | 学习记录(小甲鱼零基础入门学习Python)
- 九、Python内置方法
- Python内置方法1
- Python类的内置方法
- 2.1.2 Python面向对象之反射以及内置方法
- Python 基础09——内置方法
- Python---列表内置方法
- 入门学习-Python-小甲鱼学习资料-Day014-字符串:各种奇葩的内置方法
- Python 内置方法