写点什么

python 中 self 与 __init__ 怎么解释能让小白弄懂?

作者:Jackpop
  • 2022 年 4 月 09 日
  • 本文字数:1043 字

    阅读完需:约 3 分钟

每当我们在 Python 中进行面向对象的编程时,我们大多会遇到__init__方法,而我们通常并不完全理解。


今天,程序员在他们的职业生涯中必然会遇到面向对象编程(OOP)。作为一种现代流行的编程语言,Python 提供了实现面向对象理念的所有手段。__init__方法是面向对象编程的核心,是创建对象的基本部分之一。

什么是面向对象?

在研究__init__之前,我们先了解一下什么是面向对象(Object-Oriented Programming,OOP),那将会对理解__init__非常有帮助。


面向对象的编程(OOP)是一种依赖于类和对象概念的编程范式。它用于将软件程序结构化为简单的、可重复使用的代码蓝图片断(通常称为类),用于创建对象的单个实例。


一个对象是复杂的变量和函数的集合,可以用来表示真实的实体,如一个按钮、一架飞机或一个人。


为了在 Python 中声明、初始化和操作对象,我们使用类,它们是创建对象的模板。

什么是__init__方法?

__init__方法是 Python 类中的一个无法绕开的方法。它相当于面向对象方法中的 C++ 构造函数。


当你创建一个类的新对象时,Python 会自动将你的参数传递给 __init__方法并调用它来初始化对象的属性。


__init__方法让类初始化对象的属性,没有其他作用,它只在类中使用。

__init__用法示例

接下来,看一下如何使用__init__方法。


首先,我们创建一个 Book 类,用一个简单的__init__方法来初始化 Book 的信息,用一个函数来打印 Book 信息。


class Book:    def __init__(self, title, author, language):        # Initialize book informations        self.title = title        self.author = author        self.language = language    def print_book_info(self):        print(f'Title: {self.title}')        print(f'Author: {self.author}')        print(f'Language: {self.language}')
复制代码


现在,我们将创建一个类的对象。


book1 = Book(title='Harry Potter and the Sorcerer Stone', author='JK. Rowling', language='English')
复制代码


当你创建上面的对象时,__init__方法被调用并初始化了 Book 信息。


为了证明这一点,让我们打印一下 Book 信息。


book1.print_book_info()
复制代码


下面,看一下输出结果:


Title: Harry Potter and the Sorcerer StoneAuthor: JK. RowlingLanguage: English
复制代码


从输出结果可以看出,我们初始化 Book 对象时传进去的参数,就被初始化赋值给对应的变量。




hello,大家好,我是 Jackpop,硕士毕业于哈尔滨工业大学,曾在华为、阿里等大厂工作,如果你对升学、就业、技术提升等有疑惑,不妨交个朋友:


我是Jackpop,我们交个朋友吧!

用户头像

Jackpop

关注

还未添加个人签名 2020.09.16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
python中self与__init__怎么解释能让小白弄懂?_Jackpop_InfoQ写作平台