__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()
。。。
相关推荐
__ init __.py what is init.py? 通常在一个工程文件里面,我...其实就是新建一个文件夹,然后在里面新建一个__init__.py文件,这样子python就会把该文件夹当成一个package来看待了。package的引入是为了方便管理模块
在Python编程语言中,`__init__`方法是类中一个非常重要的特殊方法,它被称为初始化方法,用于在创建对象时设置对象的初始状态。理解`__init__`方法的不同用法对于编写高效的Python代码至关重要。以下是关于`__init_...
在Python编程中,类是构建对象的基础,而了解类中特殊方法__init__和__new__的区别是掌握面向对象编程的关键点之一。__init__和__new__方法在类的实例化过程中扮演着不同的角色。 首先,__init__方法是一个实例方法...
本文实例讲述了Python包,__init__.py功能与用法。分享给大家供大家参考,具体如下: 包: 为了组织好模块,将多个模块组合为一个包,所以包用于存放python模块 包通常是一个文件夹,当文件夹当作包使用时,文件夹...
在Python的面向对象编程中,`__init__`、`__new__`和`__call__`是三个非常重要的特殊方法,它们各自扮演着特定的角色。这篇文章将详细讲解这三个方法的功能、用途以及如何正确使用。 首先,`__init__`方法是对象的...
二者均是Python面向对象语言中的函数,__new__比较少用,__init__则用的比较多。 【异】 __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是个静态方法。__init__是当实例对象创建...
在本节中,我们将深入探讨如何利用`__init__.py`文件来实现包的自动加载,从而理解Python的包结构和导入机制。 首先,让我们明确`__init__.py`文件的作用。在Python中,一个包含`__init__.py`的目录被视为一个包。...
当我们创建`B`类的实例时,由于没有在`B`类中定义`__init__`方法,Python会自动调用父类`A`中的`__init__`方法来初始化对象。 #### 实例演示:不重写`__init__`方法的情况 如果我们直接创建一个`B`类的对象而不...
我们经常在python的模块目录中会看到 “__init__.py” 这个文件,那么它到底有什么作用呢? 1. 标识该目录是一个python的模块包(module package) 如果你是使用python的相关IDE来进行开发,那么如果目录中存在该...
在Python编程语言中,`__init__.py`文件扮演着至关重要的角色,它使得一个普通的文件夹成为了一个可导入的Python模块,也就是我们所说的“包”(package)。Python的包结构设计是为了更好地组织和管理代码,使代码...
Python的__new__方法和__init__方法定义的理解区别一些说明重写__new__的作用 定义的理解 ** new(cls,[,…])** 方法在实例创建之前被调用,主要负责创建实例并返回该实例,它的第一个参数就是所需要创建的实例所属的...
在Python编程语言中,`__init__`是一个特殊方法,也称为魔术方法,它在创建一个新的对象实例时自动调用。这个方法的主要作用是初始化新创建的对象实例的属性和状态,使得每个对象在诞生之初就有一定的初始设定。下面...
在上述代码中,创建了一个名为`Demo`的类,它有一个__init__()方法和一个__new__()方法。当创建`Demo`类的实例时,首先会打印出`__new__() - <class '__main__.Demo'>`,随后打印出`__init__() called`,表明对象...
__init__ : 对象的初始化, 是一个实例方法,第一个参数是self。 __call__ : 对象可call,注意不是类,是对象。 先有创建,才有初始化。即先__new__,而后__init__。 上面说的不好理解,看例子。 1.对于__new__ ...
在本节"Python基础进阶1.6"中,我们将深入探讨类、对象以及`__init__()`和`self`这两个关键概念。 首先,**类**是面向对象编程的核心,它是创建对象的蓝图或模板。在Python中,我们通过定义一个类来描述一类事物的...
亚像素边缘定位算法 的纯Python实现_python代码_下载_subpixel-edges
首先,`__init__.py`文件在Python中扮演着特殊的角色。当一个目录下包含此文件时,Python会将其视为一个包。这个文件可以为空,也可以包含初始化代码,用于设置包的默认行为。通过在包内定义变量和函数,我们可以将...