python _init_()方法详细介绍

帅比萌擦擦* 提交于 2020-02-08 03:18:00

本文部分内容参考借鉴https://blog.csdn.net/weixin_44831484/article/details/90339772该小哥博客,以及本文源自《编程小白的第1本python入门书》,(侯爵著)一书的部分内容
_ init_()方法是initialize(初始化)的缩写, _ init_() 是“魔术方法”之一。如果在类里面定义了 _ init_ ()方法,那么在创建实例的时候,它可以帮我们自动处理很多事情,例如新增实例属性。上面的代码例子中,创建实例属性实在我们定义完类之后,当_init_()方法可以帮助我们一步到位:

class CocaCola():
    formula = ["caffeine","sugar","water","soda"]
    def __init__(self):
        self.local_logo = "可口可乐" #创建实例属性,并进行赋值
    def drink(self):
        print("Energy!")
coke = CocaCola()  #创建实例,coke等同于self
print(coke.local_logo)

#程序运行结果
可口可乐
 class CocaCola:
    formula = ["caffeine","sugar","water","soda"]
    def __init__(self):    #self相当于类的实例,直接可以类里面引用类的属性

        for element in self.formula:
            print("coke has {}".format(element))

    def drink(self):
        print("Energy!")
coke = CocaCola()
coke.drink()

#程序运行结果
coke has caffeine
coke has sugar
coke has water
coke has soda
Energy!

我们知道,定义函数以后,如不调用,并不会执行。但从上面这个例子我们可以看到,_ init _()方法无需调用,即可执行。

除了必写的参数之外,_ init_()方法还可以有其他的形参,和函数中的参数的用法完全相同。

class CocaCola:
    formula = ["caffeine","sugar","water","soda"]
    def __init__(self,logo_name):
        self.local_logo = logo_name     #创建实例属性,并赋予其变量

    def drink(self):
        print("Energy!")
coke =CocaCola("可口可乐")      #可以认为_init_()方法的第一个参数为coke,第二个参数为"可口可乐"
print(coke.local_logo)

#程序运行结果
可口可乐

总结一下:
使用 _ init_()方法语法格式:
格式一(无形参):
def _ init_(self):
self.变量名1=值1
例:

class animal:
    def __init__(self):
        self.species = "dog"
        self.age= 3

格式二(有形参):
def _ init_(self,行参1,行参二)
self.属性名1 = 形参1
self.属性名2 = 行参2
例:

class animal:
    def __init__(self,species,age):
        self._species = species
        self._age = age

1、_ init_()方法在创建对象时被运行,无需调用即可执行
2、_ init_()方法如有行参,在创建时需出传递对应的实参

如有错误,敬请批评指正!谢谢!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!