推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python构造方法与析构方法的研究

更新时间:2019-12-24 06:03:10 大小:1006K 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

关 键 词】 Python 构造方法 析构方法 self


部分文件列表

文件名 大小
基于Python构造方法与析构方法的研究.pdf 1006K

部分页面预览

(完整内容请下载后查看)
教学 教法 专业  
◆ ◆  
专业  
基于  
构造方法与析构方法的研究  
Python  
林观德  
(广州工商学院计算机系,广东 广州  
)
510062  
[摘  
要]  
语言是一种使用非常广泛的面向对象的程序设计语言。构造方法和析构方法是  
语言面向对象  
ꢁyꢀꢂon  
ꢁyꢀꢂon  
程序设计非常重要的两个特殊方法。着重研究构造方法和析构方法的创建和调用及构造方法和析构方法的  
使用。研究证明:基于 面向对象的程序设计语言,可以根据不同的应用需求建立适合自己需要的构造  
ꢁyꢀꢂon  
方法和析构方法,这有助于深刻理解类的构造方法用于新建对象的初始化工作与析构方法用于撤销对象,完  
成一些无用数据清理的工作。该研究对编程人员具有一定的指导意义。  
[关  
键
词]  
;构造方法;析构方法;  
self  
ꢁyꢀꢂon  
Tꢁ312  
[中图分类号]  
[文献标志码]  
[文章编号]  
( )  
2096-0603 2019 18-0128-02  
A
一、引言  
面向对象(  
:
定义类  
#
class Car  
)是当前程序设计关心的主题,它  
Objecꢀ Orienꢀed  
(
def __iniꢀ__ self  
):  
构造方法  
#
是软件开发方法的主流。在实际应用中,面向对象是通过类来实  
现面向对象编程的。使用面向对象编程时需要深刻理解面向对  
象的三大特性(封装、继承和多态)。这三大特性共同保证了程序  
黑色  
self.color= "  
"
( 构造方法被调用了 )  
prinꢀ " "  
(
def ꢀool self  
):  
鸣笛  
ꢃ
的可扩展性需求。由于  
语言的简洁性、易读性以及可扩展  
ꢁyꢀhon  
(
prinꢀ "%s  
的车在鸣笛…  
( ))  
"% selfꢄcolor  
性,在国外用  
做科学计算的研究机构日益增多,一些知名  
ꢁyꢀhon  
()  
car1=Car  
创建对象  
#
大学已经采用  
来教授程序设计课程。在 语言诞生后,语  
ꢁyꢀhon  
言的语法含义与字符的排列方式分离开来,曾经被认为是一种  
程序语言的进步。 的作者有意地设计限制性很强的语法,  
C
()  
car1ꢄꢀool  
调用  
方法  
ꢀool  
#
运行上述程序输出如下结果:  
ꢁyꢀhon  
构造方法被调用了  
"
"
通过强制程序员缩进,  
ꢁyꢀhon  
确实使程序更加清晰和美观。使不  
已成为流行的面向  
黑色的车在鸣笛…  
"
"
好的编程习惯都不能通过编译,因此  
ꢁyꢀhon  
对象的程序设计语言。本文主要对构造方法和析构方法的创建  
和调用展开研究。  
研究结论:运行程序后,输出“构造方法被调用了”,说明在  
创建  
对象的过程中调用了  
()构造方法。给  
_iniꢀ__  
类添  
Car  
car1  
加了  
属性并赋值为“黑色”,在  
方法中访问了 属  
color  
color  
性的值。  
上面研究的是没有带有参数的构造方法,下面通过实例来  
研究带有参数的构造方法,其代码如下:  
定义类  
ꢀool  
二、构造方法与析构方法  
类似于  
的构造方法和析构方法并不需要显式的定义,  
ꢁHꢁ  
实际上也是存在的。在实际开发中,也可以在类中显式地定义构  
造方法和析构方法。这样就可以在创建实例对象时,在构造方法  
里添加上代码完成对象的初始化工作;在对对象销毁时,在析构  
方法里添加一些代码释放对象占用的资源。他们只是在这个对  
:
class Car  
#
( ,  
def __iniꢀ__ self color  
):  
构造方法  
#
selfꢄcolor=color  
象生成和销毁的时候才会被调用。  
ꢁyꢀꢂon  
提供两个非常特殊的方  
( 构造方法被调用了 )  
prinꢀ " "  
法:构造方法  
()和析构方法  
__iniꢀ__  
()。 ()方法在  
__del__ __iniꢀ__  
( ):  
def ꢀool self  
鸣笛  
#
创建实例对象的时候就会自动调用该方法, ()方法在销  
__del__  
(
prinꢀ "%s  
的车在鸣笛…  
( ))  
"% selfꢄcolor  
毁对象时就会自动调用该方法。  
(一)构造方法的研究  
( 红色 )  
car2=Car " "  
创建对象  
#
()  
car2ꢄꢀool  
调用  
方法  
ꢀool  
#
构造方法是一种特殊的方法,是在类实例化为对象的时候  
最开始执行的方法,主要是用来在创建对象时初始化对象。创建  
好对象后,检查类中是否实现了构造器。如果类中没有实现  
运行上述程序输出如下结果:  
构造方法被调用了  
"
"
黑色的车在鸣笛…  
"
"
()方法,就返回新创建的对象,而实例化操作也就结束  
__iniꢀ__  
研究结论:运行程序后,输出“构造方法被调用了”,说明在  
了。如果实现了  
()方法,就调用这个特殊方法,新创建的  
__iniꢀ__  
创建  
对象的过程中调用了  
()构造方法。本程序定义  
_iniꢀ__  
car2  
实例将作为它的第一个参数  
被传递进去,整个过程就好像一  
self  
个标准方法的调用一样,我们就可以把要预先初始化的属性放  
到这个方法里面。  
了带有参数的构造方法,并把参数值赋  
属性,保证了  
color  
color  
属性的值随参数接收到的值而变化,接着仍在  
方法中请问了  
ꢀool  
下列代码是构造方法的典型例子。  
属性的值。  
color  
作者简介:林观德,男,汉族,广东湛江人,本科,计算机高级实验师,研究方向:计算机应用技术。  
-128-  
教学 教法 专业  
◆ ◆  
专业  
(二)析构方法的研究  
象,而非类本身。类的方法与普通的函数只有一个特殊的区别,  
在
()构造方法,当创建对象时, 语言解释器  
__init__ Python  
在类的方法必须有个额外的第一个参数,这个参数名称是  
。
self  
默认调用了  
()构造方法,当删除一个对象来释放类所占  
__init__  
但在调用这个方法的时候不必为这个参数赋值。  
Python  
解释器会  
用资源时,  
Python  
语言解释器默认调用另外一个  
()析构  
__del__ 1  
把这个对象作为第 个参数付给  
ꢁ
,开发者只需要传递后面的  
self  
方法。  
下列代码是析构方法的典型例子。  
定义类  
参数就可以了。  
代表当前对象的地址。  
self  
下面通过一个案例来研究  
使用。  
self  
:
class Car  
#
:
定义类  
ꢂ
class Car  
( , ,  
def__init__ self name color  
):  
构造方法  
#
( ,  
def __init__ self new_color  
):  
构造方法  
#
self.name=name  
selfꢀcolor=new_color  
self.color=color  
(
def print_color self  
):  
( 构造方法被调用了 )  
print "" ""  
( 颜色为:  
print " %s"%selfꢀcolor  
)
( ,  
print selfꢀname selfꢀcolor  
)
( 白色 )  
car_white=Car " "  
( ):  
def__del__ self  
析构方法  
#
()  
car_whiteꢀprint_color  
( 析构方法被调用了 )  
print " "  
( 黑色 )  
car_black=Car " "  
( ):  
def tool self  
鸣笛  
#
()  
car_blackꢀprint_color  
(
print "%s%s  
的车在鸣笛…  
( ,  
"% selfꢀcolor selfꢀname  
))  
运行上术程序输出如下结果:  
( 比来迪 ,红色 )  
car3=Car " " " "  
创建对象  
#
颜色为:白色  
"
"
() 调用  
car3ꢀtool #  
方法  
tool  
颜色为:黑色  
"
"
运行上述程序输出如下结果:  
研究结论:在本例中定义了一个  
类,在  
()方法  
__init__  
Car  
构造方法被调用了  
"
"
"
"
中,通过参数设置  
属性的初值,然后在  
方法中获  
类的对象  
指向了该  
color  
print_color  
比来迪红色  
"
取了  
的值。在程序的第 行,创建了一个  
color  
6
Car  
car_white  
print_color  
红色比来迪的车在鸣笛…  
"
,设置属性的默认值为“白色”,并让  
car_white  
对象所指的内存地址。然后  
研究结论:运行程序后,输出“构造方法被调用了”,说明在  
调用了  
方法,默  
也指向了  
car_white  
创建  
对象的过程中调用了  
()构造方法。本程序定义  
_init__  
car3  
认会把  
引用的内在地址赋值给  
,这时  
self  
car_white  
self  
car_white  
调用  
了带有参数的构造方法中,设置了  
和
属性的初始值,  
color  
name  
这块内在地址,执行第 行输出语句会访问  
的
属
5
color  
print_color  
,这时  
在
()方法中增加了输出语句,然后使用了自定义构造方  
__del__  
性的值,所以程序输出“白色”。同理,当  
car_black  
法创建了  
类的对象  
。运行程序时输出上述结果,从结果  
car3  
Car  
方法,默认会把  
引用的内在地址赋值给  
car_black  
self  
self  
分析,本程序仍没有调用析构方法。  
在上述程序的最后加上删除对象  
程序代码如下:  
也指向了这块内在地址,执行第 行输出语句会访问  
5
car_black  
,输出结果又如何,其  
car3  
的
属性的值,所以程序输出“黑色”。  
color  
三、结语  
本文着重研究了  
:
定义类  
#
class Car  
语言类的定义、类的构造方法与析  
Python  
( , ,  
def __init__ self name color  
):  
构造方法  
#
构方法相关概念及其多种的表达形式,根据不同的应用需求建  
立适合自己需要的构造方法和析构方法。继而进一步研究了不  
同形式的构造方法与析构方法的使用,并指出显式的调用构造  
selfꢀname=name  
selfꢀcolor=color  
(
print "__init__"  
)
方法与析构方法所带来的后果。这有助于学习者深刻理解  
Python  
( ,  
print selfꢀname selfꢀcolor  
)
的构造方法与析构方法,对学习  
编程能力有很大的参考价值。  
参考文献:  
语言的编程者提高  
Python  
Python  
(
def __del__ self  
):  
析构方法  
#
( 析构方法被调用了 )  
print " "  
( ):  
def tool self  
鸣笛  
#
[ ]逄菲 基于 的分布式网络爬虫系统的设计与实现  
ꢁ ꢀ Python  
(
print "%s%s  
的车在鸣笛…  
( ,  
"% selfꢀcolor selfꢀname  
))  
[]电子技术与软件工程, ( ):  
J ꢀ 20ꢁ8 23 25ꢀ  
( 比来迪 ,红色 )  
创建对象  
#
car3=Car "  
" "  
tool  
#
"
[ ]狄博,王晓丹 基于 语言的面向对象程序设计课程  
2 ꢀ Python  
() 调用  
car3ꢀtool #  
方法  
删除对象  
教学[]计算机工程与科学, ( )  
J ꢀ 20ꢁ4 Sꢁ ꢀ  
del car3  
[ ]王明松,钱静媛 基于 语言的面向对象课程实践教  
3 ꢀ Python  
运行上述程序输出如下结果:  
学探讨[]电脑知识与技术, ()  
J ꢀ 20ꢁ7 4 ꢀ  
构造方法被调用了  
"
"
"
"
"
[ ]谢克武 大数据环境下基于 的网络爬虫技术[]  
4 ꢀ python J ꢀ  
比来迪红色  
"
电子制作, ()  
20ꢁ7 9 ꢀ  
红色比来迪的车在鸣笛…  
"
析构方法被调用了  
[ ]贾棋然 基于 专用型网络爬虫的设计及实现[]  
5 ꢀ Python J ꢀ  
"
研究结论:运行程序后,从结果分析,“构造方法被调用了”,  
电脑知识与技术, ( )  
20ꢁ7 ꢁ2 ꢀ  
当删除 对象时也调用了析构方法,从而输出了“析构方法被  
car3  
调用了”。这样可以用来释放内存空间,对象释放后就不能再进  
行访问了。  
[ ]赵英良  
6
程序设计[ ]北京:人民邮电出版社,  
ꢀPython M ꢀ  
20ꢁ6ꢀ  
[ ]董付国  
7
程序设计[ ]北京:清华大学出版社,  
ꢀPython M ꢀ  
(三) 的研究  
self  
20ꢁ6ꢀ  
(相当于  
self  
, ,  
PHP Java C++  
中的  
对象)代表类的实例对  
this  
编辑 陈鲜艳  
◎
-ꢁ29-  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载