python伪私有属性的理解

来源:千锋教育
发布时间:2023-11-15 01:51:02
分享

python伪私有属性的理解

1、说明

(1)确保定义类别中的属性(类别属性和实例属性)名称是唯一的,即使是同名属性,也能区分属于哪个类别中的定义属性。

(2)在属性名称前面添加__双下划线,后面不添加下划线,py会将此属性转换为_className__attrName。

(3)可视为私有属性,即对外暴露的属性名称不再是定义的属性名称,而是_className__attrName。

(4)使用伪属性是为了保证唯一性,防止不同子类在多继承过程中命名相同而产生冲突。

2、实例

##private.py

classPerson:

__template_name="personinstancetemplatename"

def__init__(self,name):

self.__name=name##__name属于Person类,

defget_name(self):

returnself.__name

@staticmethod

defget_template_name():

returnPerson.__template_name

>>>p=Person("keithl")

>>>print(p.get_name())

keithl

>>>print(p._Person__name)

keithl

>>>print(p.__name)

AttributeError:'Person'objecthasnoattribute'__name'

>>>print(dir(p))

以上就是python伪私有属性的理解,希望对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • pythonCounter的使用 pythonCounter的使用1、将一个list传入Counter中作为参数,它会自动为我们替当中的每个元素计数。如果我们要筛选topK,也非常简单,它为我们提供了most_common方法,我们只
  • python递归算法是什么 python递归算法是什么1、概念递归算法是直接或间接调用自己的函数或方法的算法。一般来说,递归算法的本质是将问题分解为规模缩小的同类问题的子问题,递归调用方法表示问题的解决。2、特征(1)一个问题的
  • python如何用python爬取数据 如何用python爬取数据1、find_all()的爬取find_all():提取所有符合要求的数据,搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件。2、用法bs对象.find_all(
  • python自动化运维怎么连接 python自动化运维怎么连接1、概念自动化运维是自动化大量重复操作,使工具和系统代替人工自动完成具体运输维护工作,释放生产力,提高效率,降低运输维护成本。2、自动化运维模块paramiko是基于SS
  • python参数是什么 python参数是什么1、概念Python中函数的参数是不变的对象。Python函数具有灵活的参数形式,但默认参数必须指向不变的对象。如果默认参数是可变的对象,程序运行时会有逻辑错误。2、参数类型(1
  • python字典是什么 python字典是什么1、概念字典是通过名字来引用值的数据结构,并且把这种数据结构称为映射,字典中的值没有特殊的顺序,都存储在一个特定的键(key)下,键可以是数字、字符串甚至元组。字典也是pytho