Python基础教程9.2 构造函数

9.2 构造函数

我们要介绍的第一个魔法方法是构造函数。你可能从未听说过构造函数(constructor),它其实就是本书前面一些示例中使用的初始化方法,只是命名为__init__。然而,构造函数不同于普通方法的地方在于,将在对象创建后自动调用它们。因此,无需采用本书前面一直使用的做法:

>>> f = FooBar()

>>> f.init()

构造函数让你只需像下面这样做:

>>> f = FooBar()

在Python中,创建构造函数很容易,只需将方法init的名称从普通的init改为魔法版__init__即可。

class FooBar:

def __init__(self):

self.somevar = 42

>>> f = FooBar()

>>> f.somevar

42

到目前为止一切顺利。但你可能会问,如果给构造函数添加几个参数,结果将如何呢?请看下面的代码:

class FooBar:

def __init__(self, value=42):

self.somevar = value

你认为该如何使用这个构造函数呢?由于参数是可选的,你可以当什么事都没发生,还像原来那样做。但如果要指定这个参数(或者说如果这个参数不是可选的)呢?你肯定猜到了,不过这里还是演示一下。

>>> f = FooBar('This is a constructor argument')

>>> f.somevar

'This is a constructor argument'

在所有的Python魔法方法中, __init__绝对是你用得最多的

注意 Python提供了魔法方法__del__,也称作析构函数(destructor)。这个方法在对象被销毁(作为垃圾被收集)前被调用,但鉴于你无法知道准确的调用时间,建议尽可能不要使用__del__。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181129G084LH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券