python 私有属性_Python 私有属性和私有方法
类的私有属性和方法
Python是个开放的语言,默认情况下所有的属性和方法都是公开的 或者叫公有方法,不像C++和 Java中有明确的public,private 关键字来区分私有公有。
Python默认的成员函数和成员变量都是公开的,类的私有属性指只有在类的内部使用的属性或方法,表现形式为以“__“ 属性名或方法名以双下划线开头。
class Test(object):
__count = 0 # 私有属性 __count
def get_count(self):
return self.__count # 类的内部可以使用私有属性
def set_count(self, value):
if self.__check_value(value): # 在类的内部调用类的私有方法
self.__class__.__count = value
def __check_value(self, value): # 定义类的私有方法 检查参数
if isinstance(value, int):
return True
a = Test()
print(a.get_count())
a.set_count(100)
print(a.get_count())
#a.__check_value(10) # 调用私有方法会报错
#print(a.__count)# 直接访问私有属性也会报错
应用场景
对于一些敏感的数据,我们不希望直接被的函数调用,或者不希望草率的直接object.key = value 来修改,我们可以选择将属性声名为私有的,这样从外部时无法访问该属性的,也就不能修改了,但是依然可以修改属性字典的方法来修改。
# 当然 可以使用 @proprety
class Person(object):
__name = 'Monkey'
def update_name(self, name):
self.__name = name
def get_name(self):
return self.__name
p = Person()
p.update_name('BlackMonkey')
print(p.get_name()) # BlackMonkey
print(p.__name) # 报错 AttributeError: 'Person' object has no attribute '__name'
python 私有属性_Python 私有属性和私有方法相关推荐
- python对象的三个属性_Python 对象属性的访问
在 Python 中,一切皆对象.属性访问可以理解为是从一个已有的对象中获得另一个对象的方法.对象属性的访问涉及到对象的 __dict__ 属性.描述符等概念,以及 __getattribute__. ...
- python类属性和实例属性_Python 类属性与实例属性,类对象与实例对象用法分析...
本文实例讲述了Python 类属性与实例属性,类对象与实例对象用法.分享给大家供大家参考,具体如下: demo.py(类属性,所有实例对象共用类属性): # 定义工具类 继承object是为了兼容py ...
- 定义一个属性_Python property属性
1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 # ############### 定义 ###############class Foo: def ...
- python 连通区域_python skimage 连通性区域检测方法
python skimage 连通性区域检测方法 涉及到的函数为 import matplotlib.pyplot as plt from skimage import measure, color ...
- python类的属性和对象属性_python 类属性、对象属性-阿里云开发者社区
类的普通属性: dir(Myclass), 返回一个key列表: Myclass.__dir__,返回一个字典: 1.类的数据属性: 2.类的方法: 类的特殊属性: 1.Myclass.__name_ ...
- python实例属性与类属性_Python类属性与实例属性用法分析
容器(Collections) Python附带一个模块,它包含许多容器数据类型,名字叫作collections.我们将讨论它的作用和用法. 我们将讨论的是: - defaultdict - coun ...
- python的实例属性_python 实例属性和类属性
如何在一个类中定义一些常量,每个对象都可以方便访问这些常量而不用重新构造? 第一个问题,在 Python 的类里,你只需要和函数并列地声明并赋值,就可以实现这一点, 例如这段代码中的 WELCOME_ ...
- python面向对象属性_Python面向对象属性
也是好久没有更新过了,今天主要想写的就是关于面向的对象的属性的问题. 属性的解释来看,能够简单的理解为方法但是是用字段的方式来调用方法.除此之外,另外一种是不加装饰器,利用python提供方式来写,根 ...
- python中init外面的属性_Python mock属性在\uyu init中定义和设置__
我正在尝试为一个应用程序编写一些单元测试,我使用python mock.我对其他嘲弄库很熟悉,直到现在也没遇到过什么麻烦.我试图模拟对父类的init块中的属性集的链式调用.以下是我需要的示例:clas ...
- python特性和属性_Python之属性、特性和修饰符
原博文 2018-03-17 11:08 − 作为面对对象的核心内容,将从以下一个方面进行总结: 1. property和@property 2. __getattribute__().__getat ...
最新文章
- IDEA中maven的命令及作用
- 使用C#中的ref关键字,用2个简单例子来说明
- 编程面试过程中最常见的10大算法
- Java Web整合开发(14) -- Struts 1.x 概述
- 使用jquery-easyui写的CRUD插件(2)
- JS-键盘事件之方向键移动元素
- 学计算机比学农好吗,学农教育效果如何?学生:“做农活比打游戏有意义”
- 解决pytorch softmax警告UserWarning: Implicit ....Change the call to include dim=X as an argument.
- 机器学习笔记——偏差vs方差
- ubuntu sudo apt-get update 失败 解决方法
- T-SQL命令性能比较– NOT IN与SQL NOT EXISTS与SQL LEFT JOIN与SQL EXCEPT
- 【poker】WASD变成上下左右键(方向键)的解决方法
- 补:关于man关于SEE ALSO(参见)中代号与vim下常用命令
- mac idea svn配置
- 盘点:2022年10款比较火的项目管理软件
- 【THUSC 2018】菜鸡互啄记
- 【HTML期末学生大作业】 制作一个简单HTML保护野生动物老虎网页设计专题(HTML+CSS)
- 您应该学习SwiftUI,UIKit还是同时学习两者?
- 基本粒子结构以及宇宙现象的徦说
- android avm灰色,APICloud AVM多端开发案例深度解析(上)--点餐app开发