分享

python 代码中 __init__ 有什么用途?

 网摘文苑 2022-11-29 发布于北京

在C++和Java编程语言的面向对象程序代码中,__init__是默认的构建方法,用于初始化一个对象的状态,如创建类的对象时给类成员赋值;与诸多方法一样,构建方法通常都包括特有的指定命令集或语句并且在创建对象时执行,即完成类对象的实例化。在python语言进行面向对象编程OOP时,都会遇到 __init__ 方法,新手一般都没有仔细深究和注意,也说不上理解。本文将通过使用示例对__init__方法做比较全面的讲解,理解本文内容需要了解python中编写面向对象代码时的三个概念:Class(类)、Object(对象) 和 self 参数(可阅读文章《python 代码中 self 是什么,有什么用途?》)

下面看一小段示例代码,定义Person类,同时定义该类的init方法,对类的对象进行初始化:

# 定义 Person 类,同时定义该类的 init 方法class Person: # init 方法 def __init__(self, name): self.name = name # 自定义方法 def say_hi(self): print('你好, 我是 ', self.name) p = Person(' 007 ')p.say_hi()

输入结果: 你好, 我是 007

以上代码段中,创建 person 类的对象时, 名字 “007” 就作为参数传递给 __init __ 方法,完成该对象的初始化。参数 self 代表类的实例,并且绑定了传入的参数作为类的属性,当然参数可以是不同的名字。

既然 init 方法是类的方法,那自然可以继承,看下面一小段示例代码:

# Python 面向对象代码中 如何继承 __init__ 方法 class A(object):    def __init__(self, something):        print(' 调用 A init ')        self.something = something  class B(A):    def __init__(self, something):        # 调用父类的 init        A.__init__(self, something)        print('调用 B init')        self.something = something  obj = B('Something')

输出结果:

调用 A init

调用 B init

从以上代码可以看出,先调用了父类的构建方法,但是在python中这种情况并不是一贯的,其调用顺序是可以修改的,只需要在子类的构建方法之后调用父类的构建方法,以上代码中调用 init 方法的顺序就会改变,示例代码如下:

 class A(object): def __init__(self, something): print('调用 A init ') self.something = something class B(A): def __init__(self, something): print('调用 B init') self.something = something # 调用父类的 init A.__init__(self, something) obj = B('Something')

输出结果:

调用 B init

调用 A init

(本文完)

python 代码中 __init__ 有什么用途?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多