c6adf5090ef4ea41c79d33a17a2841b9.png

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__

总结:

定义的类中包含构造方法、析构方法和普通方法:如果仅实例化类的时候调用顺序是先构造再析构;如果实例化类并调用了一个普通方法,那么调用顺序是先构造,再普通方法,最后析构方法;如果实例化类并调用了多个普通方法,那么调用顺序是先构造,再多个普通方法,最后析构方法。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐