python 中 __init__的意义以及作用

目录
  • python 中 __init__的用法和含义
  • 补充:Python类中__init__()的作用

python 中 __init__的用法和含义

python 中 __init__  与PHP中的构造函数相似__construct()

都具有初始化的作用。

1.python中的__init__是一个私有函数(方法),访问私有函数中的变量在python中用self,在PHP中用$this

2.在python类的定义中,一个函数(php叫方法)的参数中必须带有self参数,且self放在第一位

如下例子

class person():

def __init__(self,name,gender,birth,**kw)://可使用 **kw定义关键参数,代表任意参数 ,python中函数的代码块用:php用;

  self.name=name  

  self.gender=gender

  self.birth=birth

  for k,w in kw.iteritems():

    setattr(self,k,w)    //python中是按照缩进来判断代码块的从属

def sayhi(self):

   print 'my name is',self.name

xiaoming = person('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010')  //php中实例类用new,

xiaohong = person('Xiao Hong', 'Female', '1992-2-2') 

print xiaoming.name

print xiaohong.birth

print xiaoming.job

print xiaoming.tel

print xiaoming.stdid

print xiaoming.sayhi()

运行结果如下

Xiao Ming

1992-2-2

student

18089355

15010

my name is Xiao Ming

补充:Python类中__init__()的作用

最开始学习python,认为定义类时__init__方法的作用等同于C中的构造函数,但是使用之后发现也有区别。

# coding:utf-8
class a():
     def __init__(self,name):
         self.name = name
     def get_name(self):
         return self.name
b = a("wang")
print(b.get_name())

Output:
-----
wang
-----

例如:

执行时的步骤可以理解为;

b = object.__new__(a)
a.__init__(a,"wang")

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

在子类不重写__init__方法时,子类会默认调用父类中的__init__方法

子类也可以重写__init__方法,来给子类定义专属属性

当然,上面写的是比较官方的解释

用简单的话来讲,可以理解为,类的属性如果直接写在类里面一般是要有值的。

例如:

class fun()
   a = 3

这样的情况下,类中的属性无法变成变量,当将类的属性以self.a的方式定义到初始化方法中,那属性也可以当成变量

例如:

class fun():
    def __init__(self, a):

        self.a = a
f = fun(3)

print(f.a)

Output:
--
3
--

到此这篇关于python 中 __init__的意义以及作用的文章就介绍到这了,更多相关python 中 __init__用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python中class内置方法__init__与__new__作用与区别解析

    目录 背景 __init__方法作用 __new__方法作用 __init__ && __new__联系 使用__new__的场景 定义.继承immutable class 使用metaclass 参考文献 背景 最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两个特殊内置方法__init__与__new__,决定先尝试探究一番两者的具体作用与区别.PS: 本文中涉及的类均为Python3中默认的新式类,

  • Python包中__init__.py文件的作用与用法实例详解

    目录 前言 一.__init__.py文件简介 二.__init__.py文件的使用案例 2.1.没有__init__.py文件的目录,使用import xx.xx会报错吗? 2.2.在__init__.py文件中定义变量或者逻辑将在导入时候被执行 2.3.在__init__.py文件中定义变量或者方法,可以被直接导入使用 2.4.在__init__.py文件中使用__all__方法 总结 前言 在Python工程中,我们经常可以看到带有“__init__.py”文件的目录,在PyCharm中,

  • python __init__与 __new__的区别

    一.构造函数 __init__ 与__new__ __new__   作用: 创建对象,并分配内存 __init__ 作用: 初始化对象的值 注意: 1.与java相比,java只有一个构造器.而python  __new__  方法与 __init__ 方法 组合,才能称为一个对应类似于java中的构造器 2.先执行__new__ ,创建对象,并分配内存. 再执行 __init__,初始化对象的值. 3.任何类都继承于object 类. 我们一般不重写__new__ 方法. 我们不重写,就默认

  • 详解python __init__.py 和 __all__作用

    目录 python __init__.py 和 __all__作用 一.__init__.py 二.__all__属性 补充:python 包 __init__ .py 作用 和 __all__方法 __init__.py的主要作用: __all__的作用: python __init__.py 和 __all__作用 一.__init__.py 1.导入文件夹包的时候,会运行写在该文件夹包下的__init__.py文件 如 import package import package.xxx f

  • Python中super().__init__()测试以及理解

    目录 python里的super().init()有什么用? Python super().__init__()测试 super() 在 python2.3中的区别 总结 python里的super().init()有什么用? 对于python里的super().__init__()有什么作用,很多同学没有弄清楚. 直白的说super().__init__(),就是继承父类的init方法,同样可以使用super()点 其他方法名,去继承其他方法. Python super().__init__(

  • Python中__init__的用法和理解示例详解

    目录 Python中__init__的用法和理解 补充:Python __init__()类构造方法 Python中__init__的用法和理解 在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问.而__init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量).__init__函数(方法)的第一个参数必须为self,后续参数为自己定义. 从文字理解比较困难,通过下面的例子能非常

  • python中__init__()方法详情

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

  • Python中的def __init__( )函数

    在这里,我们要区分两个函数: 第一种形式:def __init__(self): 这种形式在__init__方法中,只有一个self,指的是实例的本身,但是在方法的类部,包含三个属性:feature_index.threshold和alpha.它允许定义一个空的结构,当新数据来时,可以直接添加.实例化时,需要实例化之后,再进行赋值. def __init__(self): # 特征索引 self.feature_index=None # 特征划分阈值 self.threshold=None #

  • python 中 __init__的意义以及作用

    目录 python 中 __init__的用法和含义 补充:Python类中__init__()的作用 python 中 __init__的用法和含义 python 中 __init__  与PHP中的构造函数相似__construct() 都具有初始化的作用. 1.python中的__init__是一个私有函数(方法),访问私有函数中的变量在python中用self,在PHP中用$this 2.在python类的定义中,一个函数(php叫方法)的参数中必须带有self参数,且self放在第一位

  • 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中__init__.py文件的作用

    目录 1 init文件夹图标 2 init.py导入包方式 2.1 单个导入 2.2 批量引入(定义__all__用来模糊导入) 3 实例 4 其他常见问题 4.1 使用__init__.py文件的优点 4.2 没有__init__.py文件的目录,使用import xx.xx会报错吗? 4.3 根据导入模块和主程序不同import方式 1 init文件夹图标 在PyCharm中,带有__init__.py这个文件的目录被认为是Python的包目录,与普通目录的图标有不一样的显示.如下图所示,d

  • 详解python中__name__的意义以及作用

    首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行: test.py def HaveFun(): if __name__ == '__main__': print('I am in my domain,my name is %s' % __name__) else: print('Someone else calls me!,my name is %s' % __name__) HaveFun() 运行test.py结果: I am in my domain,my

  • 深入理解Python中__init__.py文件

    目录 1. 简介 1.1 模块(Module)和包(Package)的概念 1.2 __init__.py文件简介 2. __init__.py内容写法 2.1 __init__.py文件内容 2.2 __init__.py内容解释 1. 简介 1.1 模块(Module)和包(Package)的概念 模块是程序,任何Python程序都可以作为模块导入.写在脚本.py文件中的函数,比如xx.py,可以在另一个模块或者脚本中通过import xx进行导入.如果要导入xx.py中的函数yy,就写成f

  • python中__init__方法知识点详解

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

  • Python中逗号的三种作用实例分析

    本文实例讲述了Python中逗号的三种作用.分享给大家供大家参考.具体分析如下: 最近研究python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说  没有什么不解的地方 就是形参或者实参传递的时候参数之间的逗号 例如def  abc(a,b)或者abc(1,2) 2.逗号在类型转化中的使用 主要是元组的转换 例如: >>> a=11 >>> b=(a) >>> b 11 >>> b

随机推荐