面向对象三大特性
  封装:根据职责将属性和方法封装到一个抽象的类中
  继承:实现代码的重用,相同代码不需要重复的编写
    1.单继承
    2.多继承
  多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度
 
面向对象--封装
  封装是面向对象一大特点
  面向对象编程的第一步--将属性和方法封装到一个抽象的类中
  外界使用类创建对象,然后让对象调用方法
  对象方法的细节,都被封装中类的内部
  在对象的方法内部,是可以直接访问对象的属性的
  在同一个类创建多个对象之间,属性互不干扰
  一个对象的属性,可以是另外一个类创建的对象
 
练习一:
# 姓名:jack 体重:120 吃饭:+30kg 跑步:-10kg
 
# 新增用户 Ben,其他需求同上
 
练习二
# 1.房子(House) 有户型、总面积 和家具名称列表,新房子没有任何家具
2.家具(Houseltem)有名字 和占地面积,其中 席梦思(bed)占地4平米,衣柜(chest)占地2平米,餐桌(table)占地1.5平米
3.将以上三件家具 添加到房子中
4.打印房子时,要求输出 户型、总面积、剩余面积、家具名称列表
 
思路:
新房子没有家具,所以需要后续添加,此需求需要定义两个类,一个家具类,一个房子类,由于房子需要使用到家具,所以在开发中,被使用的类,通常应该先开发,在房子类中添加家具,计算面积,输出信息
1.创建家具类
 
2.创建房子类
3.在房子类中添加家具,计算剩余面积,输出信息
 
练习三
#1.每一个新兵都没有枪
#2.可以给新兵装配枪
#3.士兵可以开火
#4.枪能够发射子弹
#5.枪能够装填子弹--增加子弹数量
 
思路分析:士兵许三多有一把AK47,士兵类应该有一个枪的属性,枪是由枪类创建出来的对象,士兵的方法有开火,枪的方法有发射子弹、装填子弹,需要先创建一个枪类,再创建一个士兵类,哪个类被使用,就先创建哪个类
 
1.创建枪类/装填子弹/发射子弹
#2.创建士兵类
在定义属性时,如果不知道设置什么初始值,可以设置为None,表示一个空对象,没有方法和属性,是一个特殊的常量
3.完成开火
 
身份运算符
身份运算符用于比较两个对象的内存地址是否一致--是否是对同一个对象的引用
在python中,针对None比时,建议使用is 判断
is 与 == 区别:
  is用于判断两个变量引用对象是否为同一个
  ==用于判断引用变量的值是否相等
 
私有属性和私有方法
应用场景
  在实际开发中,对象的某些属性或方法可能只希望中对象的内部被使用,而不希望在外部被访问到
  私有属性就是对象不希望公开的属性
  私有方法就是对象不希望公开的方法
定义方式
  在定义属性或方法时,在属性名或者方法名前增两个下划线,定义的就是私有属性或方法
 
私有属性
当age设置成私有属性时,在对象的方法内部可以访问,但是在外界不能直接访问
 
私有方法
在方法名前加__,外界不能直接访问
 
伪私有属性和私有方法
  在python中,并没有真正意义的私有
  私有属性、方法在给属性、方法命名时,实际是对名称做了一些特殊处理,使得外界无法访问到
  对名称处理方法:
  属性: _类名__属性名 例如 __age 处理成 _Women__age
  方法:_类名__方法名 例如__secret 处理成_Women__secret()
 
使用格式处理后的名称,依然可以访问私有属性,在日常开发中,不建议使用这种方式访问对象的私有属性和私有方法
 

2.Python封装练习及私有属性的更多相关文章

  1. python基础===类的私有属性(伪私有)

    说在前面的一点: python明明有私有的定义方法就是在变量或者方法的面前加上双下滑线__,这个实际上是python的伪私有.只是一种程序员约定俗称的规定,加了就表示私有变量,但是你如果要在外部调用的 ...

  2. python (伪)私有属性和私有方法

    1.定义方式 在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法. 2.为什么要定义私有属性和私有方法 在实际开发中,对象的某些属性或方法只希望在对象的内部被使用,而不希 ...

  3. Python的伪私有属性

    什么是伪私有属性? 在Python中,没有类似 private 之类的关键字来声明私有方法或属性. Python中要声明私有属性,需要在属性前加上双下划线(但是结尾处不能有双下划线),如:self._ ...

  4. python学习笔记013——模块中的私有属性

    1 私有属性的使用方式 在python中,没有类似private之类的关键字来声明私有方法或属性.若要声明其私有属性,语法规则为: 属性前加双下划线,属性后不加(双)下划线,如将属性name私有化,则 ...

  5. 【编程开发】Python隐藏属性——使用双下划线标识私有属性,外部不可直接访问

           from:https://zhuanlan.zhihu.com/p/30553607 小编在最初使用上Python之后,就一发不可收拾,人生苦短.我用Python,不光是因为其优雅简洁, ...

  6. Python类总结-封装(私有属性,方法)

    封装基础 广义上面向对象的封装:代码的保护,面向对象的思想本身就是一种封装 只让自己的对象能调用自己类中的方法 狭义上的封装-面向对象三大特性之一(私有变量,用公有的方法封装私有属性,方法叫封装) 把 ...

  7. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  8. 【python】-- 类的实例化过程、特征、共有属性和私有属性

    实例化过程 1.类的定义和语法 class dog(object): #用class定义类 "dog class" #对类的说明 def __init__(self,name): ...

  9. Python面向对象之私有属性和私有方法

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象  ...

随机推荐

  1. java-分支结构(四种基本分支结构的认识)

    分支结构:有条件的执行某语句,并非每句必走 1)if结构:1条路 2)if...else结构:2条路 3)if...else if结构:多条路 4)switch...case结构:多条路 优点:效率高 ...

  2. 文心大模型api使用

    文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...

  3. 【NOI P模拟赛】(要素过多的标题)(容斥原理)

    题面 0 题目背景 [ 数   据   删   除 ] _{^{[数\,据\,删\,除]}} [数据删除]​ 1 题目描述 在执行任务时,收集到了 n n n 份能源,其中第 i i i 份的能量值是 ...

  4. 「CCO 2017」专业网络

    Kevin 正在一个社区中开发他的专业网络.不幸的是,他是个外地人,还不认识社区中的任何人.但是他可以与 N 个人建立朋友关系 . 然而,社区里没几个人想与一个外地人交朋友.Kevin 想交朋友的 N ...

  5. OSI模型 TCP/IP协议

    常见术语 网络相关的术语 1.拓扑:物理拓扑-----体现了设备之间的连接关系 逻辑拓扑----设备之间的通信关系 2.数据载荷:传递的实际信息 3.报文(PDU--协议数据单元) 4.数据头部的作用 ...

  6. 002从零开始入门Entity Framework Core——DbContext生存期、配置和初始化

    阅读须知:本文为入门介绍.指引文章,所示代码皆为最简易(或仅为实现功能)的演示示例版本,不一定切实符合个人(企业)实际开发需求. 一.DbContext生存期 DbContext 的生存期从创建实例时 ...

  7. LFS(Linux From Scratch)构建过程全记录(一):准备工作

    写在前面 本人修学了一门课,名曰<操作系统课程设计>,其任务为基于LFS以编译源代码的方式制作一个基本的Linux操作系统,并且编写在linux下的GUI软件. 本操作系统构建的全过程将分 ...

  8. 基于 iframe 的微前端框架 —— 擎天

    vivo 互联网前端团队- Jiang Zuohan 一.背景 VAPD是一款专为团队协作办公场景设计的项目管理工具,实践敏捷开发与持续交付,以「项目」为核心,融合需求.任务.缺陷等应用,使用敏捷迭代 ...

  9. 基于OpenHarmony的智能喝水提醒器

    一.硬件说明 Neptune OpenHarmony物联网IOT模组Wi-Fi&蓝牙双模开发板.超声波模块.蜂鸣器模块.杜邦线若干 开发板相关资料:https://gitee.com/hiho ...

  10. 为不同的用户生成不同的 Kibana 界面

    文件转载自:https://elasticstack.blog.csdn.net/article/details/109593613