摘要:在Python语言中,有的名称会在前面和后面都加上两个下划线,这样的方法很特别,我们称之为魔法方法。因为这样的写法有特殊含义,所以绝不要在自己的程序中使用这样的命名方式。这些方法和函数只有很小的不同,但其中的大部分方法在某些情况下会被自动调用(比如__init__方法在对象被创建后调用)。希望大家在Python语言的学习中更上一层楼。
Python 中的魔法方法之构造方法
在Python中,有的名称会在前面和后面都加上两个下划线,这样的方法很特别,我们称之为魔法方法。因为这样的写法有特殊含义,所以绝不要在自己的程序中使用这样的命名方式。这些方法和函数只有很小的不同,但其中的大部分方法在某些情况下会被自动调用(比如__init__方法在对象被创建后调用)。
今天我们先来看看Python魔法方法中的构造方法。
构造方法代表着类似于以前例子中使用过的init的初始化方法,构造方法与普通方法的区别在于,当一个对象被创建后,会立即调用构造方法。
比如:实例化一个对象之后调用它的初始化方法,
>>> f=FooBar() >>> f.init()
构造方法相当于用f=FooBar()直接实现上面两不的效果,也就是所说的当一个对象被创建后,会立即调用构造方法。
通过以下实例来加深理解。
>>> class FooBar: def init(self): self.somevar=23 >>> f=FooBar() >>> f.init() >>> f.somevar 23
上述代码是使用普通的方法,可以看出实例化一个对象f后,必须先初始化后才能调用方法,否则出错如下:
>>> class FooBar: def init(self): self.somevar=23 >>> f=FooBar() >>> f.somevar Traceback (most recent call last): File "", line 1, in f.somevar AttributeError: FooBar instance has no attribute 'somevar'
那使用构造方法之后,就能省略初始化的步骤。在Python中创建一个构造方法很简单,只要把init方法的名字从简单的init修改为魔法版本__init__即可。看看使用魔法方法之后上面代码的实现效果。
>>> class FooBar: def __init__(self): self.somevar=23 >>> f=FooBar() >>> f.somevar 23
如有问题请加微信号:Iotek666,本微信号会不定期推送技术相关优质文章、热点资讯、视频资源及生活趣事,也很乐意与您一起交流IT知识,让我们在闲暇之余巩固一下自己的知识体系 ,扩充一下自己的知识面。快利用琐碎时间给自己充电吧!
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言Python频道!
喜欢 | 0
不喜欢 | 0
擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!
已有24人表明态度,83%喜欢该老师!
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号