私有属性,私有方法

主要通用 __ 添加到属性名前,可以让该属性得到一个保护

class WuDang:name = "武当"__kongfu_list = ["aaa", "bbb", "ccc"]wd = WuDang()
print(wd.name)
print(wd.__kong_list)

类的继承

定义类的时候,如果希望继承自另外一个类

可以通过

class 类名(父类的类名):

定义普通类,有两种方式

如果需要继承的话,只有这一种

继承后的效果

当前的类,拥有了父类的公有属性和公有方法

类的继承,提高了代码的效率,减了重复的代码

专业术语

父类是子类的基类,子是父类的派生类,子类从父类派生

方法的重写

如果父类的方法,与需求不符合

那么就在当前(自己的类)中重新写一个方法

在自己的方法中,定义需要的功能

注意

对于重写而言

方法名一定是与父类中方法同名

初始化对象属性

如果一个对象在创建的时候,需要有对象的属性

那么,我们应该在init方法中进行初始化

初始化操作主要的处理是

 对象.属性 = 值

问题,值从哪里来?

类在进行实例化时,往类名后面的括号中,传递数据

t = Cat(‘汤姆’)

通过这种方式传参

对象 =  类名(参数)

参数会传送到init方法中,按照位置对应的关系进行给值

初始化方法定义的时候
def __init__(self, 形参1,形参2):我们在外部把类实例化对象时传参这样传
对象 = 类名(实参1,实参2)通过这种方式传递参数
实参1的数据,会传递给形参1
实参2的数据,会传递给形参2

不是所有的对象属性都是要传参的

有的对象属性,可以通过计算获取

例如,房屋摆放家具案例中的剩余面积,用总面积- 已摆放的家具面积

in

not in

is

is not

身份运算符

进行数据在内存中地址的验证

In [4]: a = [1,2,3]In [5]: b = aIn [6]: id(a)
Out[6]: 2058783955976In [7]: id(b)
Out[7]: 2058783955976In [8]: a is b
Out[8]: True
In [10]: a
Out[10]: [1, 2, 3]In [11]: b
Out[11]: [1, 2, 3]In [12]: c = [1,2,3]In [13]: id(c)
Out[13]: 2058782337992In [14]: id(a)
Out[14]: 2058783955976In [15]: a is c
Out[15]: False

区分 == 验证 与 身份证,验证时关注的点

In [17]: a
Out[17]: [1, 2, 3]In [18]: b
Out[18]: [1, 2, 3]In [19]: c
Out[19]: [1, 2, 3]In [20]: a == c
Out[20]: TrueIn [21]: a is c
Out[21]: False

定义类的两种方式

# 定义一个类,创建类对象
# 1,完整版  class 类名(object):   #如果类有继承其它的类,其它类的类名就写在括号中
# 2,简单版class 类名:  # 如果类没有继承其它的类的话,我们使用这一种
class Cat:pass

创建对象

接收对象的变量名 = 类名()
p = Plane()

初始化方法init

类名()

创建对象

被动触发

创建对象的同时,会触发一个init方法

对象创建出来的时候,会执行一次init方法

利用这个特性,我们可以在init方法中添加一些东西

婴儿出生的哭

游戏开始时的初始化等待

对象消失时del方法

对象从内存中被注销,被释放内存空间的时候,会自动触发的方法

1,主动删除

del 对象

del(对象)

2,游戏结束,代码运行到最终

触释器会清空所有资源,清空内存中存放的一切数据

清空一切时,自然也会清空对象

def __del__(self):# print('del')words = ["我还会回来的","我还不想死","下次我会更劢害的"]idx = random.randint(0,2)print(words[idx])

打印对象时的输出控制str方法

def __str__(self):return "abc"

str方法中

返回的是什么内容

打印这个对象时,会就会显示什么内容

给对象添加属性

对象.属性 = 值

给对象添加属性的时机

  1. 初始化的时候

    小孩一出生,肯定有一个编号,这个编号,就是相当于小孩对象的属性

    小孩一出生,身高,体重,对象属性

    上述的对象属性,创建的时机

    应该是在初始化的时候

    也就是说

    是在对象被创建的时候,把属性赋给对象

    .

    可以利用init方法,给对象添加需要的对象属性

    .

  2. 需要的时候

    小孩长大了,参加培训

    获得了技能

    那么

    这种技能,属于后面滔天大罪 中的属性

    因此,这样一样的对象属性

    不在初始化方法中赋值

    可以在外面给他添加

定义类的两种方式

# 定义一个类,创建类对象
# 1,完整版  class 类名(object):   #如果类有继承其它的类,其它类的类名就写在括号中
# 2,简单版class 类名:  # 如果类没有继承其它的类的话,我们使用这一种
class Cat:pass

创建对象

接收对象的变量名 = 类名()
p = Plane()

初始化方法init

类名()

创建对象

被动触发

创建对象的同时,会触发一个init方法

对象创建出来的时候,会执行一次init方法

利用这个特性,我们可以在init方法中添加一些东西

婴儿出生的哭

游戏开始时的初始化等待

对象消失时del方法

对象从内存中被注销,被释放内存空间的时候,会自动触发的方法

1,主动删除

del 对象

del(对象)

2,游戏结束,代码运行到最终

触释器会清空所有资源,清空内存中存放的一切数据

清空一切时,自然也会清空对象

def __del__(self):# print('del')words = ["我还会回来的","我还不想死","下次我会更劢害的"]idx = random.randint(0,2)print(words[idx])

打印对象时的输出控制str方法

def __str__(self):return "abc"

str方法中

返回的是什么内容

打印这个对象时,会就会显示什么内容

给对象添加属性

对象.属性 = 值

给对象添加属性的时机

  1. 初始化的时候

    小孩一出生,肯定有一个编号,这个编号,就是相当于小孩对象的属性

    小孩一出生,身高,体重,对象属性

    上述的对象属性,创建的时机

    应该是在初始化的时候

    也就是说

    是在对象被创建的时候,把属性赋给对象

    .

    可以利用init方法,给对象添加需要的对象属性

    .

  2. 需要的时候

    小孩长大了,参加培训

    获得了技能

    那么

    这种技能,属于后面滔天大罪 中的属性

    因此,这样一样的对象属性

    不在初始化方法中赋值

    可以在外面给他添加

获取对象属性的值

对象.属性    ----> 可以得到对象的属性的值

调用对象的方法

对象.方法名()     -----> 让对象的方法运行起来

python面向对象2相关推荐

  1. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  2. 这可能是Python面向对象编程的最佳实践

    作者 | 崔庆才 来源 | 进击的Coder(ID:FightingCoder) Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了 ...

  3. 第八课.Python面向对象(二)

    类的继承和多态 继承和多态与函数有共同的目的,都是为了减少代码的冗余,提高复用的效率: 根据"Python面向对象(一)"的笔记,我现在定义一个Cinema类: #父类 class ...

  4. Python面向对象编程:类继承和其衍生术语

    Python面向对象编程03:类继承和其衍生术语 前面我们讲到过正则表达式字符等,上一篇分享了面向对象编程和类的结构,最后稍微提到了继承. Python面向对象编程:深度认识类class_ Pytho ...

  5. 《Python面向对象编程指南》——1.2 基类中的__init__()方法

    本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...

  6. Python 面向对象 基础

    编程范式概述: 面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实 ...

  7. python面向对象类属性_python面向对象之类属性和类方法案例分析

    本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...

  8. 关于python面向对象编程中、下列说法中_关于Python面向对象编程的知识点总结

    前言 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程. 接下来我们 ...

  9. python对象编程例子-这是我见过最详细的Python面向对象编程!建议收藏!

    原标题:这是我见过最详细的Python面向对象编程!建议收藏! 面向对象编程和函数式编程(面向过程编程)都是程序设计的方法,不过稍有区别. 面向过程编程: 1. 导入各种外部库 2. 设计各种全局变量 ...

  10. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

最新文章

  1. kindeditor用法
  2. JavaScript 小记 之 闭包(Closures)
  3. xcodeproj cannot be opened because the project file cannot be parsed.
  4. 【算法设计】虎溪校园导游系统
  5. css3整理--border-radius
  6. 【图论】Tree之最小方差树(bzoj 3754)
  7. Javascript获取日期和星期
  8. 微信“再罚”今日头条;马云:没有女性就没有阿里;有赞强推 996 工作制 | 极客头条...
  9. exchange 2003 event id 1221
  10. pandas pivot 计算占比_pandas使用9:如何处理时间序列数据
  11. python制作一个桌面小工具
  12. plsql提示列快捷键_我收藏的几个更快搬砖的vscode快捷键
  13. 数学建模:传染病模型
  14. Android如何获取唯一ID
  15. 图片转excel方法
  16. 调用谷歌翻译API(FREE)的java代码
  17. 安全生产计算机考试成绩查询,安全生产在线模拟考试成绩查询
  18. python自相关函数提取基音周期_基音周期的提取
  19. (附源码)计算机毕业设计SSM旅游出行系统
  20. python爬虫win10程序_Python爬虫教程:批量提取Win10锁屏壁纸

热门文章

  1. Linux中sysstat服务,Linux sysstat常用命令介绍
  2. Shader Graph10-Min, Max, Clamp, Saturate节点
  3. 机械臂速成小指南(三):机械臂的机械结构
  4. 【成功解决】warning: #1035-D: single-precision operand implicitly conve
  5. 最大流matlab代码,matlab求最大流问题
  6. 程序员之间的斗图大作战! 代码可乱, 斗图不能输
  7. c#通过winform实现地磅称重管理客户端
  8. 使用QuickTime Player将iPhone屏幕投至MacBook
  9. 几个音质不错的在线听歌网站
  10. php招生广告语,学校招生广告语大全