python基础:14.面向对象之构造和析构方法

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象构造方法是一个特殊的方法,它在类实例化的时候自动优先执行。通常用于初始化一些属性等操作。构造方法的名称是`__init__`。 构造方法的基本语法规则如下: ``` class 类名: def __init__(self, 参数列表): 语句块 ``` 在构造方法,第一个参数约定是`self`,表示类实例自身,其他参数是实例参数。在方法的类部,可以包含多个属性。构造方法没有返回值,或返回`None`,否则会产生`TypeError`异常。`self`在类定义内部代表类的实例,用于访问实例相关的属性和方法。 下面是一个代码实例: ``` class DemoClass: def __init__(self, name): print(name) dc1 = DemoClass("小明") dc2 = DemoClass("小吴") ``` 在这个例子,`DemoClass`这个类的构造方法`__init__`接收一个参数`name`,并在实例化时打印出来。通过`dc1`和`dc2`分别实例化了两个`DemoClass`的对象,并传入不同的参数。当实例化对象时,构造方法会自动执行,并打印出传入的参数。 总结来说,Python面向对象构造方法是用于从类创建实例对象的过程,提供了参数输入方式,并为实例属性的定义和赋值提供了支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python基础14.面向对象构造析构方法](https://blog.csdn.net/xx033138/article/details/105822995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [4. Python面向对象语法——类的构造函数](https://blog.csdn.net/weixin_44940488/article/details/117030783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值