我是靠谱客的博主 矮小枫叶,最近开发中收集的这篇文章主要介绍python中私有属性的使用属性和方法命名总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

私有属性

  • 属性和方法命名总结

python对类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:
1.通常我们约定,两个下划线开头的属性是私有的(private)。其他的为公共的(public)。
2.类内部可以方位私有属性(方法)
3.类外部不能直接访问私有属性(方法)
4.类外部可以通过“_类名__私有属性(方法)名”访问私有属(方法)
【注】方法本质上也是属性!只不过是可以通过()执行而已。所以,此处讲的私有属性和公有属性,也同时讲解了私有方法和公有方法的用法。如下测试中,同时也包含了私有方法和公有方法的例子。

#测试私有属性、私有方法
class Employee:
__company = "百战程序员"
def __init__(self,name,age):
self.name = name
self.__age = age
#私有属性
def __work(self):
#私有方法
print("好好工作,赚钱娶媳妇!")
print("年龄:{0}".format(self.__age))
print(Employee.__company)
e = Employee("高淇",18)
print(e.name)
#print(e.__age)
print(e._Employee__age)
print(dir(e))
e._Employee__work()
print(Employee._Employee__company)

执行结果

高淇
18
['_Employee__age', '_Employee__company', '_Employee__work', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']
好好工作,赚钱娶媳妇!
年龄:18
百战程序员
百战程序员

从打印的Person对象所有属性我们可以看出。私有属性“__age”在实际存储时是按照“_Person__age”这个属性来存储的。这也就是为什么我们不能直接使用“__age”而可以使用“_Person__age”的根本原因。

属性和方法命名总结

·_xxx:保护成员,不能用“frommoduleimport*”导入,只有类对象和子类对象能访
问这些成员。
·__xxx__:系统定义的特殊成员
·__xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问。(但,在类外
部可以通过“对象名._类名__xxx”这种特殊方式访问。Python不存在严格意义的私有成员)

最后

以上就是矮小枫叶为你收集整理的python中私有属性的使用属性和方法命名总结的全部内容,希望文章能够帮你解决python中私有属性的使用属性和方法命名总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部