内置方法
1. 什么是内置方法
## 定义在类内部,以__开头和__结尾的方法称之为内置方法
## 会在满足某种情况下回自动触发执行
## 为什么用: 为了定制化我们的类或者对象
2. 如何使用内置方法
# __str__
# __del__
class People:
def __init__(self,name,age):
self.name = name
self.age = age
def say(self):
print('<%s:%s>'%(self.name,self.age))
obj = People('yanchen',18)
print(obj) ## <__main__.People object at 0x00000276F6B8B730>
## ----------------------------------------------------------------------
## __str__ 来完成定制化操作
class People:
def __init__(self,name,age):
self.name = name
self.age = age
def say(self):
print('<%s:%s>'%(self.name,self.age))
def __str__(self):
print('这是xxxxx对象') ## 值起到提示作用
return '<%s:%s>' % (self.name, self.age) ## 必须要有return,而且返回字符串
obj = People('yanchen',18)
print(obj) ## <yanchen:18>
## ----------------------------------------------------------------------------------------
# __del__ :在清理对象时触发,会先执行该方法
class People:
def __init__(self,name,age):
self.name = name
self.age = age
def say(self):
print('<%s:%s>'%(self.name,self.age))
def __del__(self):
print('running......')
obj = People('yanchen',18)
print('=======================')
'''
== == == == == == == == == == == = ## 程序运行完了,要清理对象
running...... ## 清理对象时云运行
'''
## ---------------------------------------------------------------------------------------
class People:
def __init__(self,name,age):
self.name = name
self.age = age
def say(self):
print('<%s:%s>'%(self.name,self.age))
def __del__(self):
print('running......')
obj = People('yanchen',18)
del obj
print('=======================')
'''
running...... ## 清理对象时云运行
== == == == == == == == == == == = ## 程序运行完了
'''
## ---------------------------------------------------------------------------------------------
##### 对象本身占得是应用程序的内存空间,所以没有多大用处
##### 但是如果对象某个属性x 比如 obj.x 占得是操作系统内存空间,对象运行完了以后Python回收的是程序中的内存空间
### 操作系统不会被回收
class People:
def __init__(self,name,age):
self.name = name
self.age = age
self.x = open('yanchen.txt','w',encoding="utf-8")
def say(self):
print('<%s:%s>'%(self.name,self.age))
def __del__(self):
print('running......')
## 发起系统调用,告诉系统回收操作系统资源,比如如下:
self.x.close()
obj = People('yanchen',18)
print('=======================')
No Comments