__init__()函数-Python

1.定义__init__()

用Python进行面向对象编程时,通常会用到__init__ 方法(函数)。python中的__init__()方法相当于java中的构造函数,在创建一个类对象之后一定会调用的方法。

init()方法又被称为构造器(constructor)。

所有类都有一个名为__init__()的函数,该函数总是在类被初始化时执行

也可以这样理解:使用__init__ 方法传递参数,比如赋值给对象属性。

作用:当创建一个类的新对象时,Python会自动调用__init__()方法来初始化对象的属性。与常规方法不同,init()方法在每一侧都有两个下划线(__)。因此,init()通常被称为dunder init。名称来自双下划线init的缩写。

2.使用__init__()

可以参考:https://blog.csdn.net/luzhan66/article/details/82822896

class Person:
# init method or constructor
  def __init__(self, name, age):
    self.name = name
    self.age = age
# Sample Method
  def say_hi(self):
     print('Hello, my name is', self.name)
        
p1 = Person("John", 36)

print(p1.name)
print(p1.age)

注意:init()函数在每次类被用于创建新对象时被自动调用。

为什么要用__init__()函数呢?
不用该函数,代码可以这样:

class Person:
  def setDimension(self, name, age):
    self.name = name
    self.age = age
p1 = Person()
p1.setDimension("John", 36)
print(p1)

在Person类中定义了setDimension方法去设定该Person的属性,这样过于繁琐,而用__init__()这个特殊的方法就可以方便地自己对类的属性进行定义,init()方法又被称为构造器(constructor)。

3.init()实例

来源:https://www.pythontutorial.net/python-oop/python-init/

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age


if __name__ == '__main__':
    person = Person('John', 25)
    print(f"I'm {person.name}. I'm {person.age} years old.")

Python中if name == ‘main‘用法:
if name == __main__的作用体现在.py文件被import至其他文件执行时,此时仅if name == __main__前的代码会被执行,而后的代码会被忽略。

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
__init__和__init__是同一个概念,都是Python中的特殊方法,用于初始化一个类的实例。\[1\]在Python中,每当创建一个类的实例时,都会自动调用该类的__init__方法。__init__方法的第一个参数永远是self,表示创建的实例本身。\[3\]在__init__方法内部,可以将各种属性绑定到self,以便在创建实例时进行初始化操作。\[3\]通过在__init__方法中定义属性,可以确保每个实例都具有相同的属性,并且可以在创建实例时传入与__init__方法匹配的参数进行初始化。\[2\]__init__.py文件是一个特殊的文件,用于将一个目录作为Python包进行导入。\[1\]它可以为空文件,也可以包含一些初始化代码。__init__.py文件的存在告诉Python解释器该目录是一个包,并且可以在该包中导入其他模块。\[1\] #### 引用[.reference_title] - *1* *2* [__init__文件和__init__函数](https://blog.csdn.net/dingding_12345/article/details/70196528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python中__init__和__init__.py的作用](https://blog.csdn.net/mch2869253130/article/details/88864962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值