目录

    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__()方法内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!