1.2.6 python面向对象编程(二)

方法

声明格式如下:

def 方法名(self,[形参列表]):     函数体

方法调用的格式如下:

对象.方法名([实参列表])

【例1】实例方法示例。定义类Person4,创建其对象,并调用对象函数

class Person4:            #定义类Person4           def say_hi(self, name): #定义方法say_hi                   self.name = name #把参数name赋值给            self.name,即成员变量name(域)                   print('您好, 我叫', self.name)p4 = Person4()    #创建对象实例p4.say_hi('Alice')  #调用对象实例的方法

__init__方法和__new__方法

            __init__方法即构造函数(构造方法),用于执行类的实例的初始化工作。创建完对象后调用,初始化当前对象的实例,无返回值
            __new__方法是一个类方法,创建对象时调用,返回当前对象的一个实例,一般无需重载该方法
【例1】__init__方法示例1(PersonInit.py)

class Person5:             #定义类Person5       def __init__(self, name): #__init__方法                  self.name = name #把参数name赋值给self.name,即成员变量name(域)       def say_hi(self):     #定义类Person的方法say_hi                   print('您好, 我叫', self.name)p5 = Person5('Helen')    #创建对象p5.say_hi()            #调用对象的方法

 

__del__方法

        事实上在编写程序时,如果之前创建的类实例化对象后续不再使用,最好在适当位置手动将其销毁,释放其占用的内存空间(整个过程称为垃圾回收(简称GC))。

       大多数情况下,Python 开发者不需要手动进行垃圾回收,因为 Python 有自动的垃圾回收机制(下面会讲),能自动将不需要使用的实例对象进行销毁。

        无论是手动销毁,还是 Python 自动帮我们销毁,都会调用 __del__() 方法。举个例子:​​​​​​​

#-*- coding:utf-8 -*-##-------------------------------------------------------------------------#ProjectName:       python2020#FileName:          test.py#Author:            mutou#Date:              2020/5/21 0:31#Description:#--------------------------------------------------------------------------
class Demo:    def __init__(self):        print("调用 __init__() 方法构造对象")    def __del__(self):        print("调用__del__() 销毁对象,释放其空间")demo = Demo()del demo

程序运行结果为:

但是,读者千万不要误认为,只要为该实例对象调用 __del__() 方法,该对象所占用的内存空间就会被释放。举个例子:​​​​​​​

#-*- coding:utf-8 -*-##-------------------------------------------------------------------------#ProjectName:       python2020#FileName:          test.py#Author:            mutou#Date:    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zemuerqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值