python 私有属性的作用
python 私有属性的作用
class Player():
def __init__(self, name, power, skill):
self.name = name
self.power = power
self.skill = skill def print_role(self):
print(('%s: %s %s')%(self.name,self.power,self.skill)) def updateName(self, new_name):
self.name = new_name user1 = Player('tom',100,'police')
user1.print_role() #tom: 100 police user1.updateName('jack') # 可以更新名字
user1.print_role() #jack: 100 police user1.name = 'mark' # 可以更新名字
user1.print_role() #mark: 100 police
当属性变成私有属性之后,只能通过方法来更改属性值,避免了属性直接被强制修改
class Player():
def __init__(self, name, power, skill):
self.__name = name
self.power = power
self.skill = skill def print_role(self):
print(('%s: %s %s')%(self.__name,self.power,self.skill)) def updateName(self, new_name):
self.__name = new_name user1 = Player('tom',100,'police')
user1.print_role() #tom: 100 police user1.updateName('jack') #可以更新名字
user1.print_role() #jack: 100 police user1.__name = 'lili' #无法更新名字
user1.print_role() #jack: 100 police user1.name = 'mark' #无法更新名字
user1.print_role() #jack: 100 police
python 私有属性的作用
python 私有属性的作用的更多相关文章
- python私有属性和私有方法
私有属性和私有方法 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私 ...
- Python - 私有属性(双下线的变形)
__x会自动变形为_类名__x 正常情况 class A: def foo(self): print('from A') def test(self): self.foo() class B(A): ...
- Python 私有属性
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-08-05 # 类 ...
- python 基础——私有属性
私有属性 python 私有属性以两个下划线开头. python 私有属性只能在类内部访问,类外面访问会出错. python 私有属性之所以不能在外面直接通过名称来访问,其实质是因为 python 做 ...
- 洗礼灵魂,修炼python(33)--面向对象编程(3)—特殊类方法__init__,公有属性,私有属性
在上一篇博文里,传入参数时,是在实例化对象后且在调用方法时才传入参数,感觉是不是有点繁琐对吧?可以在实例化的时候就传入参数吗?可以的,这就是本篇博文的要讲到的构造器——__init__(两边双下划线) ...
- 【python】-- 类的实例化过程、特征、共有属性和私有属性
实例化过程 1.类的定义和语法 class dog(object): #用class定义类 "dog class" #对类的说明 def __init__(self,name): ...
- Python 之私有属性
概要 在基类的定义中,如果有些属性或者方法,我们希望隐藏它,从而不被子类继承,或者使其不被实例直接访问到,这时候可以用到私有属性的命名方法.尽管类的所有属性和方法在某种意义上说都是"暴露的& ...
- Python面向对象之私有属性和私有方法
01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 ...
- Python笔记(十八)_私有属性、实例属性、类属性
私有属性 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,就变成了一个私有属性,只有内部可以访问,外部不能直接访问或修改. 这样就确保了外部代码不能随意修改对象内部的状态,这样通过 ...
- Python 安全修改私有属性
设置私有属性之后,如何修改私有属性 class Room: def __init__(self,name,length,width): self.__name = name self.__length ...
随机推荐
- 基于WebSocket的modbus通信(一)- 服务器
ModbusTcp协议是基于tcp的,但不是说一定要通过tcp协议才能传输,只要能传输二进制的地方都可以.比如WebSocket协议. 但由于目前我只有tcp上面的modbus服务器实现,所以我必须先 ...
- 【论文笔记】SegNet
[深度学习]总目录 SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架.SegNet运用编码-解码结构和最大池化索引进行上采样,最主 ...
- Java中对的创建与引用
对象与引用 Java语言中除了基本数据类型以外都属于引用类型 Java中的对象是通过引用对其操作的 class Car{ String name; String color; int price; } ...
- 3代 I3 3220 对比12代 G6900 测试 入手 上手 评测
3代 I3 3220 对比12代 G6900 测试 入手 上手 评测 I3 3220 的CPU-Z ,和cinebench r23 跑分. G6900 的CPU-Z ,和cinebench r23 跑 ...
- 【已结束】阿珏Blog三周年特别纪念活动
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` [已结束]阿珏Blog三周年特别纪念活动 日期:2019- ...
- cdh版本 livy部署
1.livy部署主要就是依赖spark_home的环境变量 如何找到spark_home在哪 locate spark-shell locate是个linux找文件的命令,直接找到该目录
- tempCode
package com.cmbchina.monitor.service.imp; import com.alibaba.fastjson.JSON; import com.cmbchina.moni ...
- 【ASeeker】Android 源码捞针,服务接口扫描神器
ASeeker是一个Android源码应用系统服务接口扫描工具. 项目已开源: ☞ Github ☜ 如果您也喜欢 ASeeker,别忘了给我们点个星. 说明 ASeeker 项目是我们在做虚拟化分身 ...
- 13-nginx
关于nginx nginx是提供http服务的中间件. 这里推荐学习nginx的博客:朱双印的博客 安装 nginx的版本 主线版本(Mainline version) #最新版,不稳定 稳定版本(S ...
- LLM技术全景图:技术人必备的技术指南,一张图带你掌握从基础设施到AI应用的全面梳理
LLM技术全景图:技术人必备的技术指南,一张图带你掌握从基础设施到AI应用的全面梳理 LLM 技术图谱(LLM Tech Map)是将 LLM 相关技术进行系统化和图形化的呈现,此图谱主要特点是&qu ...