千家信息网

python中__init__()怎么使用

发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,这篇文章主要讲解了"python中__init__()怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中__init__()怎么使用
千家信息网最后更新 2024年09月23日python中__init__()怎么使用

这篇文章主要讲解了"python中__init__()怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中__init__()怎么使用"吧!

目录

    python类中定义的函数称为方法, init ()方法本质也是一个函数。这个函数的作用是初始化实例后的对象。

    具体如下例:

    init()方法的作用是初始化实例后的对象cqueue

    class CQueue:

    类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。

    __init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。

    类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self

    class CQueue    def __init__(self):        self.A,self.B=[],[]      def appendTail(self,value:int)->None:        self.A.append(value)    def deleteHead(self)->int:        if self.B:            return self.B.pop()        if not self.A:            return -1        while self.A:            self.B.append(self.A.pop())        print(self.B)        return self.B.pop()if __name__=="__main__":    #类CQueue的实例化,这里的括号()不能丢。    #__init__()方法的作用是初始化实例后的对象cqueue。    cqueue=CQueue()    #调用类中的appendTail()函数,增加元素。    cqueue.appendTail(243)    cqueue.appendTail(2)    cqueue.appendTail(4)    cqueue.deleteHead()    cqueue.deleteHead()

    有无__init__的区别,结论如下:

    1.在类实例化时,如果类中有__init__方法,此时调用__init__方法。

    2.若该类没有父类,也没有__init__方法,则不会有任何操作。即对象不会被初始化。

    3.若该类有父类,则去调用该类的父类中__init__方法。

    具体实验如下:

    定义三个类:CQueuestudentsum,其中CQueuestudentsum的父类。

    • 实验1说明__init__方法的作用是初始化实例的类。

    • 实验2说明:当子类没有__init__方法时,会在父类中进行初始化。

    • 实验3,4说明sum(student,CQueue ),子类sum没有__init__方法时,会调用父类,并且调用父类中排在前面的父类,这里student类在CQueue前,所以调用student类中的__init__方法初始化实例的类。

    • 实验5说明:在类及其父类均没有初始化时,实例化的类不会被初始化。

    实验1代码:

    class CQueue:    #类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。    #__init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。    #类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self。    def __init__(self):        self.A,self.B=[],[]    def appendTail(self,value:int)->None:        self.A.append(value)    def deleteHead(self)->int:        if self.B:            return self.B.pop()        if not self.A:            return -1        while self.A:            self.B.append(self.A.pop())        print(self.B)        return self.B.pop()class student:        def __init__(self):            print("测试输出1")        def test1(self):            print("测试输出2")class sum(student,CQueue ):        def __init__(self):            print("测试输出3")        def test2(self):            print("测试输出4")if __name__=="__main__":    #类CQueue的实例化,这里的括号()不能丢。    s=sum()

    实验结果:

    实验2代码:

    class CQueue:    #类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。    #__init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。    #类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self。    def __init__(self):        self.A,self.B=[],[]    def appendTail(self,value:int)->None:        self.A.append(value)    def deleteHead(self)->int:        if self.B:            return self.B.pop()        if not self.A:            return -1        while self.A:            self.B.append(self.A.pop())        print(self.B)        return self.B.pop()class student:        def __init__(self):            print("测试输出1")        def test1(self):            print("测试输出2")class sum(student,CQueue ):        # def __init__(self):        #     print("测试输出3")        def test2(self):            print("测试输出4")if __name__=="__main__":    #类CQueue的实例化,这里的括号()不能丢。    s=sum()

    实验结果:

    实验3,4,省略。

    实验5:

    class CQueue:    #类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。    #__init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。    #类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self。    def __init__(self):        self.A,self.B=[],[]    def appendTail(self,value:int)->None:        self.A.append(value)    def deleteHead(self)->int:        if self.B:            return self.B.pop()        if not self.A:            return -1        while self.A:            self.B.append(self.A.pop())        print(self.B)        return self.B.pop()class student:        # def __init__(self):        #     print("测试输出1")        def test1(self):            print("测试输出2")class sum(student,CQueue ):        # def __init__(self):        #     print("测试输出3")        def test2(self):            print("测试输出4")if __name__=="__main__":    #类CQueue的实例化,这里的括号()不能丢。    s=sum()

    实验结果:

    从实验结果可以看出,没有任何操作。

    感谢各位的阅读,以上就是"python中__init__()怎么使用"的内容了,经过本文的学习后,相信大家对python中__init__()怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

    0