__init__魔术方法(构造方法)

  1. 触发时机:实例化对象,初始化的时候触发
  2. 功能:为对象添加成员
  3. 参数:参数不固定,至少一个self参数
  4. 返回值:无

基本用法,至少含有一个参数

  1. class MyClass():
  2. def __init__(self):
  3. self.name = "Chris"
  4. #实例化对象
  5. obj = MyClass()
  6. print(obj.name)

执行

  1. [root@node10 python]# python3 test.py
  2. Chris

多个参数的__init__ 构造方法

  1. class MyClass():
  2. def __init__(self,name):
  3. self.name = name
  4. #实例化对象
  5. obj = MyClass("Ning")
  6. print(obj.name)
  7. obj = MyClass("Ning1")
  8. print(obj.name)

执行

  1. [root@node10 python]# python3 test.py
  2. Ning
  3. Ning1

综合实例

  1. class Plane():
  2. def __init__(self,name,funaction):
  3. self.name = name
  4. self.funaction = funaction
  5. def fly(self):
  6. print(self.name + "会飞")
  7. def capitain(self):
  8. print(self.name + "一般都会有一个驾驶员")
  9. def addoil(self):
  10. print (self.name + "都需要加油")
  11. def plane_info(self):
  12. print ("这种飞机是{},他的功能是{}".format(self.name,self.funaction))
  13. # __init__构造方法,传递参数时,就在实例化类的括号中填写
  14. obj = Plane("战斗机","打仗")
  15. obj.fly()
  16. obj.plane_info()
  17.  
  18. obj1 = Plane("客机","载人")
  19. obj1.capitain()
  20. obj1.plane_info()
  21.  
  22. obj2 = Plane("播种机","播种")
  23. obj2.addoil()
  24. obj2.plane_info()

执行

  1. [root@node10 python]# python3 test.py
  2. 战斗机会飞
  3. 这种飞机是战斗机,他的功能是打仗
  4. 客机一般都会有一个驾驶员
  5. 这种飞机是客机,他的功能是载人
  6. 播种机都需要加油
  7. 这种飞机是播种机,他的功能是播种

类可以是一个,但对象可以实例化出多个,每个对象彼此都是独立的

027. Python面向对象的__init__方法的更多相关文章

  1. Python 类中__init__()方法中的形参与如何修改类中属性的值

    一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__( ...

  2. 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解

    第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一.    引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类 ...

  3. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

  4. Python面向对象之魔术方法

    __str__ 改变对象的字符串显示.可以理解为使用print函数打印一个对象时,会自动调用对象的__str__方法 class Student: def __init__(self, name, a ...

  5. Python面向对象之内置方法

    1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 issubclass(sub, s ...

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

    init()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是init()参数值可以有多种形式. 因为有很多种方式为init ...

  7. python面向对象之__new__方法

    众所周知,python中定义的类在创建实例对象的时候,会自动执行__init__()方法,但是在执行__init__()方法之前,会执行__new__()方法. __new__()的作用主要有两个. ...

  8. python中的__init__方法

    init()方法意义重大的原因有两个.第一个原因是在对象生命周期中初始化是最重要的一步:每个对象必须正确初始化后才能正常工作.第二个原因是init()参数值可以有多种形式. __init__方法使用 ...

  9. Python - 面向对象编程 - __init__() 构造方法

    什么是构造方法 在创建类时, 可手动添加一个   __init__() 方法,称为构造方法,这是一个实例方法 构造方法用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调 ...

随机推荐

  1. 201871030131-谢林江 实验二 个人项目—《D{0-1} KP》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.学习编写PSP2.完成个人项目实验要求3.在Github建仓 这个作业在哪些方面帮助我实现学习目标 1.首次编 ...

  2. lustre文件系统环境搭建及测试

    目录 1.节点角色 2.硬件配置 3.软件版本 4.安装软件包 4.1.安装 e2fsprogs 相关包 4.2.安装 kernel 相关包 4.3.客户端安装 4.4.服务器端安装 4.5.配置 5 ...

  3. 【CTF】图片隐写术 · 盲水印

    前言 盲水印同样是CTF Misc中极小的一个知识点,刚刚做到一题涉及到这个考点的题目. 感觉还挺有意思的,就顺便去了解了下盲水印技术. 数字水印 数字水印(Digital Watermark)一种应 ...

  4. Spring 学习笔记(三):Spring Bean

    1 Bean配置 Spring可以看做是一个管理Bean的工厂,开发者需要将Bean配置在XML或者Properties配置文件中.实际开发中常使用XML的格式,其中<bean>中的属性或 ...

  5. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)

    在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...

  6. 1079 Total Sales of Supply Chain

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  7. 小图标文字对齐的终极解决方案demo

    CSS代码: .icon { display: inline-block; width:20px; height:20px; background: url(delete.png) no-repeat ...

  8. 【Nginx(四)】Nginx配置集群 负载均衡策略

    1.Nginx常见的负载均衡策略 ip_hash (固定分发) 简介:根据请求按访问ip的hash结果分配,这样每个用户就可以固定访问一个后端服务器 场景:服务器业务分区.业务缓存.Session需要 ...

  9. fullpage.js用法总结

    兼容性: 支持 IE8+ 及其他现代浏览器. 主要功能: 1.支持鼠标滚动: 2.支持前进后退键盘控制; 3.多个回调函数; 4.支持手机.移动设备; 5.支持窗口缩放自动调整; 6.可设置滚动宽度. ...

  10. mysql 密码忘记解决办法

    bin>net stop mysql bin>mysqld --skip-grant-tables bin>mysql mysql>use mysql mysql>upd ...