python_面向对象——封装
1.私有属性
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age #实例属性
self.attack_val = 30
self.__life_val = 100 #前面加两个下划线就是私有变量,私有属性 a = Person('wdc',22)
print(a.age) #实例属性可以直接外面使用和修改
print(a.__life_val) #私有属性外面不可以使用和修改
2.私有属性的用法
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age #实例属性
self.attack_val = 30
self.__life_val = 100 #前面加两个下划线就是私有变量,私有属性
def get_life_val(self):
print(self.__life_val) #可以在类的内部用方法调用
return self.__life_val #也可以在类的内部用方法返回属性的值 def got_life_val(self): #只能通过内部方法修改私有属性的值
self.__life_val = self.__life_val - 20 a = Person('wdc',22)
b = a.get_life_val() #调用私有属性的方法,并接收返回值
print(b)
a.got_life_val() #执行内部方法修改私有属性
b = a.get_life_val() #调用私有属性的方法,并接收返回值
3.对方法的封装
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age def __breath(self): #将方法封装
print('{}在呼吸'.format(self.name)) def attack(self):
self.__breath() #只能通过内部的其他方法去调用私有方法 a = Person('wdc',22)
a.attack()
4.如果非要在外部访问或者修改私有属性或者方法可以使用:实例名._类名+方法名()
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age
self.__life_val = 100 def __breath(self): #将方法封装
print('{}在呼吸'.format(self.name)) def attack(self):
self.__breath() #只能通过内部的其他方法去调用私有方法
def get_life_val(self):
print(self.__life_val) a = Person('wdc',22)
a.attack()
# 实例名._类名+方法名()
a._Person__breath() #调用私有方法
a._Person__life_val = 10 #修改私有属性
a.get_life_val()
注意:实例创建完成后,在外面创建不了私有属性。即使在外面使用a.__wdc = 123创建了属性__wdc,这个属性也不具备私有性质。
python_面向对象——封装的更多相关文章
- Java面向对象㈠ -- 封装
Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一 三个基本的特性:封装.继承与多态1 1.2. 魔 ...
- Atitit 面向对象 封装的实现原理
Atitit 面向对象 封装的实现原理 1.1. 动态对象的模拟使用map+函数接口可以实现1 1.2. 在用结构体 + 函数指针 模拟 对象 1 1.3. This指针..1 1.4. " ...
- java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final
一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...
- OC面向对象—封装
OC面向对象—封装 一.面向对象和封装 面向对象的三大特性:封装(成员变量).继承和多态 在OC语言中,使用@interface和@implementation来处理类. @interface就好像暴 ...
- python面向对象封装案例(附:is和==的区别)
面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对 ...
- python-面向对象-04_面向对象封装案例
面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对 ...
- python-面向对象-05_面向对象封装案例 II
面向对象封装案例 II 目标 士兵突击案例 身份运算符 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象, ...
- php面向对象 封装继承多态 接口、重载、抽象类、最终类总结
1.面向对象 封装继承多态 接口.重载.抽象类.最终类 面向对象 封装继承多态 首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...
随机推荐
- Select 查询语句
1.1 查询语句 1.1.1 select select 用于从数据看查询数据.语法 select field1,filed2,.. . from tablename [where cond ...
- Spring中声明式事务的注解@Transactional的参数的总结(REQUIRED和REQUIRES_NEW的与主方法的回滚问题)
一.事务的传播行为1.介绍 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播.例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行.2.属性 事务的传播行为可以由传 ...
- (二)spring初次遇见shiro
文章目录 集成 Spring 集成中的坑 shiroFilter 的工作原理 权限配置细节 集成 Spring pom.xml 添加shiro相关的依赖 我使用的版本是 ${version.shiro ...
- Python34之模块测试(__name__ == "__main__")
def c2f(cel): fah = cel * 1.8 + 32 return fah def f2c(fah): cel = (fah -32) / 1.8 return cel def tes ...
- oracle update left join 写法
oracle update left join 写法 (修改某列,条件字段在关联表中) 案例: E:考核表 X,:用户表 USERNAME 关联 需求:修改营业部最高分 分析:通过登录账号的营业部OR ...
- MVC-07数据库
部分6:添加数据库. 创建数据库 Visual Web Developer带有免费的SQL数据库,名为SQL Server Compact. 数据库创建: 1.右键点击解决方案资源管理器中的App_D ...
- WebApi 身份认 Basic基础认证
<body> <div style="text-align:center;"> <div>用户名:<input type="te ...
- vue+axios通过formdata提交参数和上传文件
demo.vue 文件 <template> <div class="demo"> <input v-model="importForm.m ...
- SSH安全加固
SSH安全加固 配置文件: /etc/ssh/sshd_config # This file is automatically generated at startup KexAlgorithms c ...
- 《图解HTTP》读后总结
阅读时间:2019.10.30-2019.11.6 阅读心得: 从知乎上看到有人推荐这本书,本身对计算机网络方面学习的比较少,于是就买来这本书开始看.这本书总体看下来比较轻松,因为书中的插画非常卡通, ...