python隐藏类中属性的3种实现方法


Posted in Python onDecember 19, 2019

方法一:

效果图一:

python隐藏类中属性的3种实现方法

代码一:

# 定义一个矩形的类
class Rectangle:
  # 定义初始化方法
  def __init__(self,width,height):
    self.hidden_width = width
    self.hidden_height = height

  # 定义获取width、height的方法
  def get_width(self):
    return self.hidden_width

  def get_height(self):
    return self.hidden_height

  # 定义修改width、height的方法
  def set_width(self,width):
    self.hidden_width = width

  def set_height(self,height):
    self.hidden_height = height

  # 定义一个获取矩形面积的方法
  def get_area(self):
    return self.hidden_width * self.hidden_height

# 创建Rectangle的实例
r_one = Rectangle(3,4)
# 输出打印 r_one的widh
print(r_one.get_width())  # 输出 3
# 输出打印 r_one的area
print(r_one.get_area())  # 输出 12

# 改变width
r_one.set_width(5)
print(r_one.get_area())   # 输出 20

方法二:

效果图二:

python隐藏类中属性的3种实现方法

代码二:

# 可以为对象的属性使用双下划线开头,__xxx
# 双下划线开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问
# 其实隐藏属性只不过是Python自动为属性改了一个名字
#  实际上是将名字修改为了,_类名__属性名 比如 __name -> _Person__name
class Person:
  def __init__(self,name):
    self.__name = name

  def get_name(self):
    return self.__name

  def set_name(self , name):
    self.__name = name    

p = Person('孙悟空')

# print(p.__name) # 报错:AttributeError: 'Person' object has no attribute '__name'
         #__开头的属性是隐藏属性,无法通过对象访问
p.__name = '猪八戒' # 这个设置无效,不会报错
print(p._Person__name)
p._Person__name = '沙和尚'

print(p.get_name())

方法三: 常用的

效果图三:

python隐藏类中属性的3种实现方法

代码三:

# 使用__开头的属性,实际上依然可以在外部访问,所以这种方式一般不用
#  一般会将一些私有属性(不希望被外部访问的属性)以_开头
#  一般情况下,使用_开头的属性都是私有属性,没有特殊需要不要修改私有属性
class Person:
  def __init__(self,name):
    self._name = name

  def get_name(self):
    return self._name

  def set_name(self,name):
    self._name = name

p = Person('牛一')

print(p._name)

以上这篇python隐藏类中属性的3种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的getopt函数使用详解
Jul 28 Python
Python网络编程 Python套接字编程
Sep 13 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
python pycharm的安装及其使用
Oct 11 Python
Django 限制访问频率的思路详解
Dec 24 Python
Pytorch的mean和std调查实例
Jan 02 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
python库sklearn常用操作
Aug 23 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 #Python
关于Python中定制类的比较运算实例
Dec 19 #Python
在python中利用try..except来代替if..else的用法
Dec 19 #Python
Python字符串的修改方法实例
Dec 19 #Python
python中property和setter装饰器用法
Dec 19 #Python
python装饰器代替set get方法实例
Dec 19 #Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 #Python
You might like
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python入门篇之字典
2014/10/17 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
师范应届生求职信
2013/11/15 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书