`
uule
  • 浏览: 6359115 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Python中_init_() 方法

 
阅读更多

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

Python中__init__方法注意点

python的__init__几种方法总结

详解Python中的__init__和__new__

 

__new__方法是创建类实例的方法, 创建对象时调用, 返回当前对象的一个实例

__init__方法是类实例创建之后调用, 对当前对象的实例的一些初始化, 没有返回值

 

注意1__init__并不相当于C#中的构造函数,执行它的时候,实例已构造出来了。

class A(object):
    def __init__(self,name):
        self.name=name
    def getName(self):
        return 'A '+self.name

 当我们执行

 

a=A('hello')

时,可以理解为

a=object.__new__(A)
A.__init__(a,'hello')

 即__init__作用是初始化已实例化后的对象。

 

注意2子类可以不重写__init__,实例化子类时,会自动调用超类中已定义的__init__

class B(A):
    def getName(self):
        return 'B '+self.name
 
if __name__=='__main__':
    b=B('hello')
    print b.getName()

 

但如果重写了__init__,实例化子类时,则不会隐式的再去调用超类中已定义的__init__

class C(A):
    def __init__(self):
        pass
    def getName(self):
        return 'C '+self.name
 
if __name__=='__main__':
    c=C()
    print c.getName()

 

则会报"AttributeError: 'C' object has no attribute 'name'”错误,所以如果重写了__init__,为了能使用或扩展超类中的行为,最好显式的调用超类的__init__方法

class C(A):
    def __init__(self,name):
        super(C,self).__init__(name)
    def getName(self):
        return 'C '+self.name
 
if __name__=='__main__':
    c=C('hello')    
    print c.getName()

 

。。。

 

 

 

 

分享到:
评论

相关推荐

    理解python中__init__.py和__all__

    __ init __.py what is init.py? 通常在一个工程文件里面,我...其实就是新建一个文件夹,然后在里面新建一个__init__.py文件,这样子python就会把该文件夹当成一个package来看待了。package的引入是为了方便管理模块

    python中__init__(self)方法和__init__(self,参数1,参数2)的区别(csdn)————.pdf

    在Python编程语言中,`__init__`方法是类中一个非常重要的特殊方法,它被称为初始化方法,用于在创建对象时设置对象的初始状态。理解`__init__`方法的不同用法对于编写高效的Python代码至关重要。以下是关于`__init_...

    Python中的 _init__和 _new__的区别.pdf

    在Python编程中,类是构建对象的基础,而了解类中特殊方法__init__和__new__的区别是掌握面向对象编程的关键点之一。__init__和__new__方法在类的实例化过程中扮演着不同的角色。 首先,__init__方法是一个实例方法...

    Python包,__init__.py功能与用法分析

    本文实例讲述了Python包,__init__.py功能与用法。分享给大家供大家参考,具体如下: 包: 为了组织好模块,将多个模块组合为一个包,所以包用于存放python模块 包通常是一个文件夹,当文件夹当作包使用时,文件夹...

    浅谈python中的__init__、__new__和__call__方法

    在Python的面向对象编程中,`__init__`、`__new__`和`__call__`是三个非常重要的特殊方法,它们各自扮演着特定的角色。这篇文章将详细讲解这三个方法的功能、用途以及如何正确使用。 首先,`__init__`方法是对象的...

    Python函数__new__及__init__作用及区别解析

     二者均是Python面向对象语言中的函数,__new__比较少用,__init__则用的比较多。 【异】 __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是个静态方法。__init__是当实例对象创建...

    第10.10节 Python使用__init__.py自动加载包下内容.rar

    在本节中,我们将深入探讨如何利用`__init__.py`文件来实现包的自动加载,从而理解Python的包结构和导入机制。 首先,让我们明确`__init__.py`文件的作用。在Python中,一个包含`__init__.py`的目录被视为一个包。...

    python中子类继承父类的__init__方法实例

    当我们创建`B`类的实例时,由于没有在`B`类中定义`__init__`方法,Python会自动调用父类`A`中的`__init__`方法来初始化对象。 #### 实例演示:不重写`__init__`方法的情况 如果我们直接创建一个`B`类的对象而不...

    浅谈Python __init__.py的作用

    我们经常在python的模块目录中会看到 “__init__.py” 这个文件,那么它到底有什么作用呢? 1. 标识该目录是一个python的模块包(module package) 如果你是使用python的相关IDE来进行开发,那么如果目录中存在该...

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

    在Python编程语言中,`__init__.py`文件扮演着至关重要的角色,它使得一个普通的文件夹成为了一个可导入的Python模块,也就是我们所说的“包”(package)。Python的包结构设计是为了更好地组织和管理代码,使代码...

    Python的__new__方法和__init__方法

    Python的__new__方法和__init__方法定义的理解区别一些说明重写__new__的作用 定义的理解 ** new(cls,[,…])** 方法在实例创建之前被调用,主要负责创建实例并返回该实例,它的第一个参数就是所需要创建的实例所属的...

    Python中的__init__作用是什么

    在Python编程语言中,`__init__`是一个特殊方法,也称为魔术方法,它在创建一个新的对象实例时自动调用。这个方法的主要作用是初始化新创建的对象实例的属性和状态,使得每个对象在诞生之初就有一定的初始设定。下面...

    详解Python中的__new__()方法的使用

    在上述代码中,创建了一个名为`Demo`的类,它有一个__init__()方法和一个__new__()方法。当创建`Demo`类的实例时,首先会打印出`__new__() - <class '__main__.Demo'>`,随后打印出`__init__() called`,表明对象...

    详解Python中的__new__、__init__、__call__三个特殊方法

    __init__ : 对象的初始化, 是一个实例方法,第一个参数是self。 __call__ : 对象可call,注意不是类,是对象。 先有创建,才有初始化。即先__new__,而后__init__。 上面说的不好理解,看例子。 1.对于__new__ ...

    python基础进阶1.6:面向对象之类,对象及__init__(),self相关用法讲解

    在本节"Python基础进阶1.6"中,我们将深入探讨类、对象以及`__init__()`和`self`这两个关键概念。 首先,**类**是面向对象编程的核心,它是创建对象的蓝图或模板。在Python中,我们通过定义一个类来描述一类事物的...

    亚像素边缘定位算法 的纯Python实现_python代码_下载_subpixel-edges

    亚像素边缘定位算法 的纯Python实现_python代码_下载_subpixel-edges

    discussion.zip Python关于import的实验(10) 利用__init__.py文件将变量和包下的模块作为包的属性

    首先,`__init__.py`文件在Python中扮演着特殊的角色。当一个目录下包含此文件时,Python会将其视为一个包。这个文件可以为空,也可以包含初始化代码,用于设置包的默认行为。通过在包内定义变量和函数,我们可以将...

Global site tag (gtag.js) - Google Analytics