python 类 析构_python基础:14.面向对象之构造和析构方法
0.前言如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负所望。谢谢!!!1.前提基于win10专业版64位系统+64位jdk1.8+64位python3.6.5+社区版pycharm2018.1.3+unittest+selenium3.141.0。要学好自动化测试,我们先从python语言基础开始学习,一步一个脚印,欲
0.前言
如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负所望。谢谢!!!
1.前提
基于win10专业版64位系统+64位jdk1.8+64位python3.6.5+社区版pycharm2018.1.3+unittest+selenium3.141.0。
要学好自动化测试,我们先从python语言基础开始学习,一步一个脚印,欲速则不达哦!
2.构造方法
类实例化的时候自动优先执行该方法,通常用于初始化一些属性等操作。python中构造方法的名称__init__。
姓名:小张,年龄:18!
打印以上内容几种实现方式。
方式1:无构造方法
class Son:
name = "小张"
age = 18
def method(self):
print('姓名:%s,年龄:%d!' %(self.name,self.age))
if __name__ == '__main__':
s = Son()
s.method()
# 运行结果:
姓名:小张,年龄:18!
方式2:有构造方法
class Son:
def __init__(self):#将属性定义到构造方法里面
self.name = "小张"
self.age = 18
def method(self):
print('姓名:%s,年龄:%d!' %(self.name,self.age))
if __name__ == '__main__':
s = Son()
s.method()
# 运行结果:
姓名:小张,年龄:18!
方式3:有构造方法,仅通过类的实例化实现
class Son:
def __init__(self):#在构造方法里面调用method方法
self.name = "小张"
self.age = 18
self.method()
def method(self):
print('姓名:%s,年龄:%d!' %(self.name,self.age))
if __name__ == '__main__':
Son()
# 运行结果:
姓名:小张,年龄:18!
结论:构造方法在实例化类时会自动优先执行;构造方法除了初始化一些对象之外,还可以调用其它方法。
3.析构方法
类实例化的时候自动最后执行该方法,通常用于回收对象释放资源等操作。
这里将构造和析构方法放在一起来说明下:
class Son:
def __init__(self):#构造方法
print("我是构造方法:__init__")
def method(self):#普通方法
print('我是普通方法:method')
def __del__(self):#析构方法
print("我是析构方法:__del__")
if __name__ == '__main__':
Son()
# 运行结果:
我是构造方法:__init__
我是析构方法:__del__
上面只实例化,并没有调用method方法,下面调用下:
class Son:
def __init__(self):#构造方法
print("我是构造方法:__init__")
def method(self):#普通方法
print('我是普通方法:method')
def __del__(self):#析构方法
print("我是析构方法:__del__")
if __name__ == '__main__':
s = Son()
s.method()
# 运行结果:
我是构造方法:__init__
我是普通方法:method
我是析构方法:__del__
以上代码,换种调用方式,结果都是一样的:
class Son:
def __init__(self):#构造方法
print("我是构造方法:__init__")
def method(self):#普通方法
print('我是普通方法:method')
def __del__(self):#析构方法
print("我是析构方法:__del__")
if __name__ == '__main__':
Son().method()
# 运行结果:
我是构造方法:__init__
我是普通方法:method
我是析构方法:__del__
总结:
定义的类中包含构造方法、析构方法和普通方法:如果仅实例化类的时候调用顺序是先构造再析构;如果实例化类并调用了一个普通方法,那么调用顺序是先构造,再普通方法,最后析构方法;如果实例化类并调用了多个普通方法,那么调用顺序是先构造,再多个普通方法,最后析构方法。
更多推荐
所有评论(0)