私有方法
在某些时候,会看到有一种方法命名比较特别,是以“__”双划线开头的,将这类命名的函数/方法称之为“私有函数”。
所谓私有函数,就是:
-
私有函数不可以从它们的模块外面被调用
-
私有类方法不能够从它们的类外面被调用
-
私有属性不能够从它们的类外面被访问
例如:
class People(object):
def __init__(self):
self.name = "张三"
self.__age = 52
def ser(self):
print("公有方法")
def __ms(self):
print("私有方法")
people = People()
print(people.name)
#输出 张三
print(people.age)
#出错:AttributeError: 'People' object has no attribute 'age'
#因为age变为私有属性所以访问不到
people.__ms()
#出错:AttributeError: 'People' object has no attribute '__ms'
#因为__ms是私有方法所以访问不到
因为python是弱类型语言。所以想访问到也是可以的(失去了设为私有的初衷,不介意用)
print(people.__dict__)
#找到实例化对象中的所有属性包括私有属性
print(people._People__age)
#输出 52
可以在类中调用私有方法与属性
class People(object):
def __init__(self):
self.name = "张三"
self.__age = 52
self.__ms()
def ser(self):
print("公有方法")
def __ms(self):
print("私有方法")
people = People()
#输出 私有方法
本文深入探讨了Python中私有方法的概念,解释了如何通过双下划线前缀定义私有函数、类方法和属性,并演示了它们在类外部不可直接访问的特点。同时,文章也提到了Python的弱类型特性允许通过特殊方式访问这些私有成员,但并不推荐这样做。
2463

被折叠的 条评论
为什么被折叠?



