Python——类的封装
class Gun:
def __init__(self, model):
# 1. 枪的型号
self.model = model
# 2. 子弹的数量
self.bullet_count = 0
def add_bullet(self, count):
self.bullet_count += count
def shoot(self):
# 1. 判断字弹的数量
if self.bullet_count <= 0:
print("[%s] 没有字弹了..." % self.model)
return
# 2. 发射子弹
self.bullet_count -= 1
# 3. 提示发射信息
print("[%s] 突突突...子弹有: [%d]" % (self.model, self.bullet_count))
# 创建枪对象
ak47 = Gun('ak47')
ak47.add_bullet(30)
ak47.shoot()
ak47.shoot()
class Soldier:
def __init__(self, name):
self.name = name
self.gun = None # 私有
def fire(self):
# 1. 判断士兵是否有枪
if self.gun is None: # 身份运算符(is) 可以替换(==)
print("[%s] 还没有枪..." % self.name)
return
# 2. 口号
print("冲啊... [%s]" % self.name)
# 3. 装子弹
self.gun.add_bullet(30)
# 4. 发射子弹
self.gun.shoot()
# 创建一个士兵
jack = Soldier("jack")
jack.gun = ak47
jack.fire()
#print(jack.gun)
输出:
C:\Users\79453\Anaconda3\python.exe "D:/PyCharm 2018.1/pycorrector-master/tests/self_model.py" [ak47] 突突突...子弹有: [29] [ak47] 突突突...子弹有: [28] 冲啊... [jack] [ak47] 突突突...子弹有: [57] Process finished with exit code 0
Python——类的封装的更多相关文章
- 孤荷凌寒自学python第二十三天python类的封装
孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...
- python类的封装
Python之类的封装 1. 什么是封装 装:往容器/名称空间里存入名字 封:代表将存放于名称空间中的名字给藏起来,这种隐藏对外不对内(怎么做到的,在下文解释) 2. 为何要封装 封数据属性:不想要给 ...
- python 类的封装/property类型/和对象的绑定与非绑定方法
目录 类的封装 类的property特性 类与对象的绑定方法与非绑定方法 类的封装 封装: 就是打包,封起来,装起来,把你丢进袋子里,然后用绳子把袋子绑紧,你还能拿到袋子里的那个人吗? 1.隐藏属性和 ...
- python类的封装与继承
封装 关注公众号"轻松学编程"了解更多. 1.概念 面向对象语言的三大特征:封装, 继承, 多态. 广义的封装: 类和函数的定义本身就是封装的体现. 狭义的封装:一个类的某些属性, ...
- Python类总结-封装(私有属性,方法)
封装基础 广义上面向对象的封装:代码的保护,面向对象的思想本身就是一种封装 只让自己的对象能调用自己类中的方法 狭义上的封装-面向对象三大特性之一(私有变量,用公有的方法封装私有属性,方法叫封装) 把 ...
- Python类总结-封装(Property, setter, deleter)
Property #property #内置装饰器函数,只在面向对象中使用 from math import pi class Circle: def __init__(self,r ): self. ...
- LightMysql:为方便操作MySQL而封装的Python类
原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...
- python 以单例模式封装logging相关api实现日志打印类
python 以单例模式封装logging相关api实现日志打印类 by:授客QQ:1033553122 测试环境: Python版本:Python 2.7 实现功能: 支持自由配置,如下lo ...
- python 日志的配置,python对日志封装成类,日志的调用
# python 日志的配置,python对日志封装成类,日志的调用 import logging # 使用logging模块: class CLog: # --------------------- ...
随机推荐
- MySQL 5.6 for Windows 解压缩版配置安装 和 MySQL 数据库的安装和密码的设定
https://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html https://jingyan.baidu.com/article/09 ...
- 深入了解servlet
一.web项目结构 |- WebRoot : web应用的根目录 |- 静态资源(html+css+js+image+vedio) |- W ...
- 2019-04-10 集成JasperReport
1. 报表的制作过程为 ① 制作.jrxml报表模板文件,并编译成.jasper ② 代码处理.jasper文件并填充数据进行输出 2. 一开始是打算使用iReport作为模板制作工具的,但是有以下局 ...
- python3 整数类型PyLongObject 和PyObject源码分析
python3 整数类型PyLongObject 和PyObject源码分析 一 测试环境介绍和准备 测试环境: 操作系统:windows10 Python版本:3.7.0 下载地址 VS版本:vs2 ...
- ftm国际化解决方案
记录一下踩过的坑,在使用ftm:message的时候我发现这个的国际化是依赖于本地浏览器的语言环境的!关于自主设置这个语言的方法有如下3种:(个人建议使用第二种,可以更加灵活且有效!第一种我这边没有生 ...
- Jetson TX1使用usb camera采集图像 (1)
使用python实现 https://jkjung-avt.github.io/tx2-camera-with-python/ How to Capture and Display Camera Vi ...
- Windows 上连接本地 Linux虚拟机上的 mysql 数据库
查看本机ip ifconfig 查看当前的 3306 端口状态 netstat -an|grep 3306 当前是外部无法连接状态 修改访问权限 默认的 mysql 是只能本机连接, 因此需要修改配 ...
- python并发编程之IO阻塞基础知识点
IO模型 解决IO问题的方式方法 问题是:IO操作阻塞程序执行 解决的也仅仅是网络IO操作 一般数据传输经历的两个阶段,如图: IO阻塞模型分类: 阻塞IO 非阻塞IO 多路复用IO 异步IO(爬 ...
- MySQL逻辑备份mysqldump
MySQL 备份之 mysqldump mysqldump mysqldump工具备份: 本质:导出的是SQL语句文件 优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句 缺点:速度较 ...
- python第六天
深浅拷贝,元祖,字典 ,集合的定义以及基本操作方法 深浅拷贝 # 值拷贝:应用场景最多值拷贝:先创建一个列表ls = [1, 'abc', [10]] 再定义 ls1 = ls 此处ls1会直接将 ...