文章目录

  • 一、python面向对象与模块思维导图
  • 二、补充说明:对象的属性和方法
    • 1、属性的概念
    • 2、方法的概念
    • 3、实例理解
    • 4、init方法
    • 三、补充说明:继承的种类
      • 1、单继承
      • 2、多继承
    • 四、补充说明:模块之自定义模块
      • 1、自定义模块的定义、创建
      • 2、保存自定义功能模块,以jupyter Notebook为例
      • 3、关于 if __name__ == '__main__' 看代码片的注解有

一、python面向对象与模块思维导图

二、补充说明:对象的属性和方法

1、属性的概念

属性就是展示对象的形态,比如学生是一个对象,学生的名字,学生的年龄,学生的性别,学生的成绩都是属性,它描述了学生这个对象具有什么特征

2、方法的概念

方法其实跟函数我觉得是差不多的,他更多的表现的是一种操作,或者说是对象的一种行为,比如学生打架 ,学生学习了

3、实例理解

这里创建一个类和对象:

 #创建类
class Hero(object):  def move(self):print("发起了攻击")
#创建对象,对象名 = 类名
super_hero= Hero()

现在给对象赋予属性,名字,攻击力,生命值

#给对象添加属性和相对应的属性值
hero.name = "将军"   #名字
hero.hp = "1000" #生命值
hero.attack = "700"  #攻击力

然后我们获取它的属性值,看一下有没有给它添加成功:

然后我们试着使用有了具体对象后的方法

这是总的代码,第一步我们创了类,第二步我们创建了对象,第三步给对象添加了属性,然后我们验证了这个属性并调用了实例化后的方法。def move(self)里面的self其实就是对象自己的引用作为值传递了进去,我们还可以把获取对象属性值那一步精简一下,变成下面这样:

class Hero(object):def move(self):print("发起了攻击")def base(self):print("人物 %s 的生命值剩余 %d , 攻击力 %d" % (hero.name,hero.hp,hero.attack))#创建对象,对象名 = 类名
hero = Hero()#给对象添加属性和相对应的属性值
hero.name = "将军"   #名字
hero.hp = 1000 #生命值
hero.attack = 700  #攻击力#获取对象的实例方法
hero.base()
hero.move()

运行结果是一样的

4、init方法

  1. 概念:无需任何操作,类创造对象时自动执行相关的代码
  2. 无参数情况下:
  3. 有参数情况下,直接在__init__里面添加参数,然后对其赋值初始化,增加属性

三、补充说明:继承的种类

1、单继承

还是用上文的例子举例

class Hero(object):  #父类def __init__(self,name,hp,attack):self.name = nameself.hp = hpself.attack = attackprint("%s 的生命值有剩余 %d,武力值为 %d" % (self.name,self.hp,self.attack))print("被打败了")
class City_hero(Hero): #子类,没有对父类作什么改变,就是单纯的继承,而且只继承了一个父类Heropass
hero = City_hero('将军',1000,700)

2、多继承

当子类比较贪心,一次性继承多个父类(这里写了两个父类的实例)时。如果父类的方法命名时相同的,那么调用的时候肯定会出现冲突,也就是说,你也叫张三,我也叫张三,是给你叫还是给我叫:

class Hero(object):  #第一个父类def __init__(self):self.name = "将军"def me(self):print("%s" % (self.name))def bad(self): print("被打败了")class Person(object):  #第二个父类def __init__(self):self.name = "敌方将军"def me(self):print("%s" % (self.name))def result(self):print("打赢了")class City_hero(Hero,Person): #子类,继承了2个父类passhero = City_hero()
hero.me()

最终结果是输出了将军,也就是执行了 City_hero(Hero,Person)中的hero的init方法,可以总结继承多个父类,产生冲突时,执行第一个父类的方法
我们修改一下代码

执行出来了这样一个结果,hero.bad,hero.result,两个父类的内容都输出了,因为他们之间没有产生冲突

四、补充说明:模块之自定义模块

1、自定义模块的定义、创建

举自己写的一段代码进行梳理:

__all__ = ["today", "tomorrow"]   #如果使用from mod import *,就只能执行today和tomorrow这两个函数today = 12def tomorrow():     print("加油")class Hero(object):def __init__(self,name):self.name = nameprint("%s 的生活多姿多彩" % self.name)
if __name__ == '__main__':   #假如这个模块直接被运行而不是调用,它就会执行接下来的代码块,如果是模块被导入了,那就不执行下面这个代码块tomorrow()

2、保存自定义功能模块,以jupyter Notebook为例

  1. 对代码文件进行重命名
  2. 保存下载代码文件为.py文件

    3、将代码文件放在和接下来的代码文件一个文件夹内


4、import模块,检验功能

3、关于 if name == ‘main’ 看代码片的注解有

数据分析学习笔记—python面向对象与模块相关推荐

  1. 数据分析学习笔记—python函数、异常与处理

    文章目录 一.python函数异常与处理思维导图 二.补充说明:python函数参数(如有错误,还请指正) 1.python函数参数的传递机制 2.python函数参数分类(位置.默认值.关键字) 三 ...

  2. 数据分析学习笔记—python数据类型与数据容器

    文章目录 1.python标准数据类型 2.python数据容器概念 3.python数据容器思维导图 1.python标准数据类型 2.python数据容器概念 容器类数据模型,从个人角度理解来说, ...

  3. 数据分析学习笔记—python简单操作EXCEL

  4. Python数据分析学习笔记:使用SciKit-Learn进行数据规范化

    Python数据分析学习笔记:使用SciKit-Learn进行数据规范化 数据规范化是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果 ...

  5. Python数据分析学习笔记:计算向量夹角

    Python数据分析学习笔记:计算向量夹角 通过计算两个向量夹角了解两个向量之间的相关性. # 计算向量夹角import numpy as npdef included_angle(a, b):a_n ...

  6. Python数据分析学习笔记:计算相关系数

    Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...

  7. Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  8. python客户画像_Python数据分析学习笔记05:用户画像

    Python数据分析学习笔记05:用户画像 一.用户画像 用户画像是指根据用户的属性.用户偏好.生活习惯.用户行为等信息而抽象出来的标签化用户模型.通俗说就是给用户打标签,而标签是通过对用户信息分析而 ...

  9. 数据分析学习笔记——数据可视化

    数据分析学习笔记系列--数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍<数据之美-一本书学会可视化设计>的学习后整理所得.全篇主要围绕数据可视化的5个步骤展开,其中重点内容是第三步 ...

最新文章

  1. HTTPS网络加密双向验证-使用AFNetworking封装
  2. docker本地私有仓库搭建
  3. 下载并导出数据到execl中
  4. 【Linux】一步一步学Linux——passwd文件详解(107)
  5. RabbitMQ各个名词介绍
  6. AT4439-[AGC028E]High Elements【结论,线段树】
  7. html排序图标,css实现排序升降图标
  8. sublime 关闭自动更新
  9. SOTIF很快将会取代ISO 26262?为您详细解读SOTIF标准ISO/PAS 21448
  10. surfer 8 scripter 学习笔记(9)surfer与VB结合的VB源代码
  11. Audition人声美化
  12. VMware虚拟机迁移
  13. 浮层引导页Activity
  14. 阿里云(飞天)里的 盘古
  15. vs2022 E1696 无法打开 源 文件 “string.h“
  16. python实现翻转金字塔图案
  17. 运动无线耳机哪个品牌比较好、口碑最好的运动蓝牙耳机
  18. 用pygame写像素游戏地图编辑器
  19. HSV2RGB一种灯光渐变实现算法
  20. 欧拉角,轴角,四元数与旋转矩阵详解

热门文章

  1. ssms win10_10个SSMS技巧和窍门可提高您的生产力
  2. sql备份恢复数据库_使用DBATools通过SQL恢复数据库操作验证备份
  3. 利用Visual Studio Project自动将数据加载到SQL Server数据库中
  4. sql 时态表的意义_在SQL Server 2016中拉伸时态历史记录表
  5. linux磁盘链路故障
  6. 基于python的文件处理
  7. js中apply使用方法小议(转载)
  8. 四步破解大亚DP607超级密码,别的光猫可能也适用!
  9. HTML5 canvas 模拟事件
  10. 分享一个自己做的简易敏捷开发管理工具——AgileLite