python面向对象2
私有属性,私有方法
主要通用 __
添加到属性名前,可以让该属性得到一个保护
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方法中
返回的是什么内容
打印这个对象时,会就会显示什么内容
给对象添加属性
对象.属性 = 值
给对象添加属性的时机
初始化的时候
小孩一出生,肯定有一个编号,这个编号,就是相当于小孩对象的属性
小孩一出生,身高,体重,对象属性
上述的对象属性,创建的时机
应该是在初始化的时候
也就是说
是在对象被创建的时候,把属性赋给对象
.
可以利用init方法,给对象添加需要的对象属性
.
需要的时候
小孩长大了,参加培训
获得了技能
那么
这种技能,属于后面滔天大罪 中的属性
因此,这样一样的对象属性
不在初始化方法中赋值
可以在外面给他添加
定义类的两种方式
# 定义一个类,创建类对象
# 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方法中
返回的是什么内容
打印这个对象时,会就会显示什么内容
给对象添加属性
对象.属性 = 值
给对象添加属性的时机
初始化的时候
小孩一出生,肯定有一个编号,这个编号,就是相当于小孩对象的属性
小孩一出生,身高,体重,对象属性
上述的对象属性,创建的时机
应该是在初始化的时候
也就是说
是在对象被创建的时候,把属性赋给对象
.
可以利用init方法,给对象添加需要的对象属性
.
需要的时候
小孩长大了,参加培训
获得了技能
那么
这种技能,属于后面滔天大罪 中的属性
因此,这样一样的对象属性
不在初始化方法中赋值
可以在外面给他添加
获取对象属性的值
对象.属性 ----> 可以得到对象的属性的值
调用对象的方法
对象.方法名() -----> 让对象的方法运行起来
python面向对象2相关推荐
- python面向对象的优点_Python面向对象编程——总结面向对象的优点
Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...
- 这可能是Python面向对象编程的最佳实践
作者 | 崔庆才 来源 | 进击的Coder(ID:FightingCoder) Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了 ...
- 第八课.Python面向对象(二)
类的继承和多态 继承和多态与函数有共同的目的,都是为了减少代码的冗余,提高复用的效率: 根据"Python面向对象(一)"的笔记,我现在定义一个Cinema类: #父类 class ...
- Python面向对象编程:类继承和其衍生术语
Python面向对象编程03:类继承和其衍生术语 前面我们讲到过正则表达式字符等,上一篇分享了面向对象编程和类的结构,最后稍微提到了继承. Python面向对象编程:深度认识类class_ Pytho ...
- 《Python面向对象编程指南》——1.2 基类中的__init__()方法
本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...
- Python 面向对象 基础
编程范式概述: 面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实 ...
- python面向对象类属性_python面向对象之类属性和类方法案例分析
本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...
- 关于python面向对象编程中、下列说法中_关于Python面向对象编程的知识点总结
前言 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程. 接下来我们 ...
- python对象编程例子-这是我见过最详细的Python面向对象编程!建议收藏!
原标题:这是我见过最详细的Python面向对象编程!建议收藏! 面向对象编程和函数式编程(面向过程编程)都是程序设计的方法,不过稍有区别. 面向过程编程: 1. 导入各种外部库 2. 设计各种全局变量 ...
- python面向对象编程的优点-Python面向对象编程——总结面向对象的优点
Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...
最新文章
- kindeditor用法
- JavaScript 小记 之 闭包(Closures)
- xcodeproj cannot be opened because the project file cannot be parsed.
- 【算法设计】虎溪校园导游系统
- css3整理--border-radius
- 【图论】Tree之最小方差树(bzoj 3754)
- Javascript获取日期和星期
- 微信“再罚”今日头条;马云:没有女性就没有阿里;有赞强推 996 工作制 | 极客头条...
- exchange 2003 event id 1221
- pandas pivot 计算占比_pandas使用9:如何处理时间序列数据
- python制作一个桌面小工具
- plsql提示列快捷键_我收藏的几个更快搬砖的vscode快捷键
- 数学建模:传染病模型
- Android如何获取唯一ID
- 图片转excel方法
- 调用谷歌翻译API(FREE)的java代码
- 安全生产计算机考试成绩查询,安全生产在线模拟考试成绩查询
- python自相关函数提取基音周期_基音周期的提取
- (附源码)计算机毕业设计SSM旅游出行系统
- python爬虫win10程序_Python爬虫教程:批量提取Win10锁屏壁纸
热门文章
- Linux中sysstat服务,Linux sysstat常用命令介绍
- Shader Graph10-Min, Max, Clamp, Saturate节点
- 机械臂速成小指南(三):机械臂的机械结构
- 【成功解决】warning: #1035-D: single-precision operand implicitly conve
- 最大流matlab代码,matlab求最大流问题
- 程序员之间的斗图大作战! 代码可乱, 斗图不能输
- c#通过winform实现地磅称重管理客户端
- 使用QuickTime Player将iPhone屏幕投至MacBook
- 几个音质不错的在线听歌网站
- php招生广告语,学校招生广告语大全