在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。而__init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量)。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。

从文字理解比较困难,通过下面的例子能非常容易理解这个概念:

例如我们定义一个Box类,有width, height, depth三个属性,以及计算体积的方法:

#!/usr/bin/python
# -*- coding utf-8 -*-
#Created by Lu Zhan
 
class Box:
    def setDimension(self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth
 
    def getVolume(self):
        return self.width * self.height * self.depth
 
b = Box()
b.setDimension(10, 20, 30)
print(b.getVolume())

我们在Box类中定义了setDimension方法去设定该Box的属性,这样过于繁琐,而用__init__()这个特殊的方法就可以方便地自己对类的属性进行定义,__init__()方法又被称为构造器(constructor)。

#!/usr/bin/python
# -*- coding utf-8 -*-
#Created by Lu Zhan
 
class Box:
    #def setDimension(self, width, height, depth):
    #   self.width = width
    #   self.height = height
    #   self.depth = depth
    def __init__(self, width, height, depth):
        self.width = width
        self.height = height
        self.depth = depth
 
    def getVolume(self):
        return self.width * self.height * self.depth
 
b = Box(10, 20, 30)
print(b.getVolume())

__init__的用法相关推荐

  1. 深入Python(2): __init__.py 用法

    原文:http://www.2cto.com/kf/201204/129388.html python的每个模块的包中,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的mod ...

  2. python中main方法的用法_python __main__和__init__正确用法

    因为我对python很新,所以语言的这个特殊方面对我来说仍然是不透明的. 因此,假设我的项目包含许多包含代码的文件和两个"服务"文件:__ init__.py和__main__.p ...

  3. __init__.py 文件用法

    __init__.py 文件用法 简介 __init__.py用法1 __init__.py用法2 简介 __init__.py文件的作用是把整个文件夹当作一个python模块包来处理,密度是科学地管 ...

  4. python提供的默认的构造方法是什么_Python面试常见问题,__init__是构造函数吗?...

    今天这篇是Python专题的第17篇文章,我们来聊聊Python当中一个新的默认函数__new__. 上一篇当中我们讲了如何使用type函数来动态创建Python当中的类,除了type可以完成这一点之 ...

  5. Python中的__init__和self是做什么的?

    The __init__ and self are two keywords in python, which performs a vital role in the application. __ ...

  6. python面试技巧_经典7大Python面试题!看完考官竟然给了我30k的薪资

    Python面试(一)之交换变量值 平时时不时会面面实习生,大多数的同学在学校里都已经掌握了Python.面试的时候要求同学们实现一个简单的函数,交换两个变量的值,大多数的同学给出的都是如下的答案 实 ...

  7. 什么是mixin,为什么它们有用?

    在" Python编程 "中,Mark Lutz提到了" mixins". 我来自C / C ++ / C#背景,以前没有听说过这个词. 什么是mixin? 在 ...

  8. python怎么打下划线符号_详解 Python 中的下划线命名规则

    在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后--那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...

  9. python下划线怎么输入_Python中下划线的使用方法有哪些

    Python中下划线的使用方法有哪些 主要介绍了Python中下划线的使用方法,是为python编程学习中的基本知识,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注 ...

最新文章

  1. 分布式电子邮件系统设计--转载
  2. C# HttpRequest基础连接已经关闭: 接收时发生意外错误
  3. https://www.unimelb.edu.au/
  4. ClearTextBox.Text
  5. 三位整数两位小数掩码_小数点造句_造句大全
  6. 自己动手开发SAP Spartacus focus Directive的单元测试
  7. scikit-learn点滴
  8. 2021牛客暑期多校训练营7 J-xay loves Floyd(最短路+bitset优化集合交)
  9. linuxsed替换字符串后保存_Numpy运用-文件读写、存储及字符串处理
  10. 如何做一个内心强大的人
  11. mysql8.0root连接失败_mac 下jdbc连接mysql 8.0 失败
  12. 敏捷开发用户故事系列之四:优先级排序
  13. python删除指定路径文件_基于python实现删除指定文件类型
  14. 重提URL Rewrite(4):不同级别URL Rewrite的一些细节与特点
  15. 从零基础入门Tensorflow2.0 ----一、2. 实战回归模型
  16. 数字图像处理-空间滤波
  17. cutftp.exe
  18. 在Qt下使用映美精黑白相机:Qt 5.12 + ImagingSource(映美精)+ vs2017 Community + OpenCV 3.3
  19. 虚拟机 服务器 root,虚拟机切换到root账户
  20. MySql报错1153

热门文章

  1. Pyhton如何爬取网站数据并导入到excel
  2. java计算机毕业设计校园跑腿平台源码+数据库+系统+lw文档+部署
  3. POJ 1659【Havel-Hakimi 定理】
  4. 模拟CMOS 基础知识2——偏置与跨导
  5. 中国金宝通受邀出席全国数智化产融生态共建大会 暨新经济新消费新零售高峰论坛
  6. 中国乙烯-丙烯酸酯橡胶(AEM)市场调研报告(2022版)
  7. Linux赛车游戏 SuperTuxKart 1.0 正式发布
  8. 超级签名企业签名免签封装微信多开自助分发多合一系统
  9. linux ping -w 命令,ping命令--Linux命令应用大词典729个命令解读
  10. 机器学习算法——以癌症分类为例子介绍 逻辑回归(sklearn实现)