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)

相关推荐

  • Python RuntimeError: thread.__init__() not called解决方法

    在写一个多线程类的时候调用报错 RuntimeError: thread.__init__() not called 复制代码 代码如下: class NotifyTread(threading.Thread):      def __init__(self, params):          threading.Thread.__init__(self)  #here......          self.params = params            def run(self): 

  • 详细解析Python中__init__()方法的高级应用

    通过工厂函数对 __init__() 加以利用 我们可以通过工厂函数来构建一副完整的扑克牌.这会比枚举所有52张扑克牌要好得多,在Python中,我们有如下两种常见的工厂方法: 定义一个函数,该函数会创建所需类的对象. 定义一个类,该类有创建对象的方法.这是一个完整的工厂设计模式,正如设计模式书所描述的那样.在诸如Java这样的语言中,工厂类层次结构是必须的,因为该语言不支持独立的函数. 在Python中,类并不是必须的.只是当有相关的工厂非常复杂的时候才会显现出优势.Python的优势就是当一

  • 详细解读Python中的__init__()方法

    __init__()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是__init__()参数值可以有多种形式. 因为有很多种方式为__init__()提供参数值,对于对象创建有大量的用例,我们可以看看其中的几个.我们想尽可能的弄清楚,因此我们需要定义一个初始化来正确的描述问题区域. 在我们接触__init__()方法之前,无论如何,我们都需要粗略.简单地看看在Python中隐含的object类的层次结构. 在这一章,我

  • python中__init__()方法详情

    目录 python类中定义的函数称为方法, init ()方法本质也是一个函数.这个函数的作用是初始化实例后的对象. 具体如下例: init()方法的作用是初始化实例后的对象cqueue. class CQueue: 类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用.若类定义了__init__()方法,类的实例化操作会自动调用__init__方法. __init__方法可以有参数,参数通过__init__()传递到类的实例化操作上.self代表的是类的实例,而非类. 类

  • python中__init__方法知识点详解

    目录 介绍__init__方法的作用 讲解__init__方法的语法 演示如何在类中使用__init__方法初始化类的属性 讲解如何使用__init__方法给对象动态添加属性 __init__方法的多态特性 __init__和super的用法 提醒注意事项 总结 介绍__init__方法的作用 __init__ 方法是 Python 中面向对象编程中类的特殊方法,也称为构造方法,当创建一个类的实例时,__init__ 方法会自动调用. 它的主要作用是初始化实例的属性,在实例被创建后,你可以通过这

  • Python中__init__.py文件的作用详解

    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件. 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能.我们在导入一个包时,实际上是导入了它的__init__.py文件.这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入. # package # __init__.py import re import urllib import sys impo

  • python中__call__方法示例分析

    本文实例讲述了python中__call__方法的用法,分享给大家供大家参考.具体方法分析如下: Python中的__call__允许程序员创建可调用的对象(实例),默认情况下, __call__()方法是没有实现的,这意味着大多数实例是不可调用的.然而,如果在类定义中覆盖了这个方法,那么这个类的实例就成为可调用的. test.py文件如下: #!/usr/bin/python # Filename:test.py class CallTest(): def __init__(self): pr

  • 详解python中init方法和随机数方法

    1.__init__方法的使用 2.random方法的使用 在python中,有一些方法是特殊的,是以两个下划线开始,两个下划线结束,定义类,最常用的方法就是__init__()方法,这是类的初始化方法,类似于C#或Java的构造函数.在创建对象的时候自动执行. class Person(object): ''' 这里定义的属性 为 静态的 ''' empCount = 0 # 创建对象的时候自动执行 def __init__(self, name): print('初始化方法.....') s

  • python中绑定方法与非绑定方法的实现示例

    目录 一:绑定方法:其特点是调用方本身自动作为第一个参数传入 二:非绑定方法,静态方法 一:绑定方法:其特点是调用方本身自动作为第一个参数传入 1.绑定到对象的方法:调用方是一个对象,该对象自动传入 2.方法绑定到类:调用方是类,类自动传入 import settings_A class 后台数据库: def __init__(self,ip,port): self.ip=ip self.port=port def 基本功能(self): print('%s:%s' %(self.ip,self

  • Python 中 Shutil 模块详情

    一.什么是shutil shutil可以简单地理解为sh + util ,shell工具的意思.shutil模块是对os模块的补充,主要针对文件的拷贝.删除.移动.压缩和解压操作. 二.shutil模块的主要方法 1. shutil.copyfileobj(fsrc, fdst[, length=16*1024]) copy文件内容到另一个文件,可以copy指定大小的内容.这个方法是shutil模块中其它拷贝方法的基础,其它方法在本质上都是调用这个方法. 让我们看一下它的源码: def copy

  • 详解Python中__new__方法的作用

    目录 前言 一.__new__方法简介 1.初始化数据加载+解析类实例 2.初始化数据加载重写new方法+解析类实例 二.单例模式 1.用new方法如何实现单例模式 2.如何控制类仅执行一次初始化方法 三.多例模式 总结 前言 Python中类的构造方法__new__方法有何作用? Python类中有些方法名.属性名的前后都添加__双下画线,这种方法.属性通常属于Python的特殊方法和特殊属性.通过重写这些方法或直接调用这些方法来实现特殊功能.今天来聊聊构造方法__new__实际程序的应用场景

  • Python 中面向接口编程详情

    目录 前言 概述 Python 接口 非正式接口 前言 接口在软件工程扮演重要角色,随着应用程序的功能不断扩展,代码库的更新和改变也难以管理.在许多情况下,会发现有一些看起来非常相似,但却不相关的类,这可能会导致一些难于维护.在本次分享中,将看到你如何使用 Python 接口来帮助确定. 主要从下面几个方面了解内容: 了解接口的工作原理和创建 Python 接口的注意事项 理解接口在像 Python 这样的动态语言中重要性 实现一个非正式的 Python 接口 使用 abc.ABCMeta 和 

随机推荐