谦瑞
2023-09-04 17:55:34浏览 500
一、私有函数(变量)
- 无法被实例化后的对象调用的类中的函数与变量
- 类内部可以调用私有函数与变量
- 只希望类内部业务调用使用,不希望被使用者调用。
- 在变量或函数前添加_(2个下横线),变量或者函数名后无需添加。
class Person(object):
def __init__(self, name):
self.name = name
self.__age = 33
def dump(self):
print(self.name, self.__age)
def __cry(self):
return 'I want cry'
- 上述代码中的age虽然是私有的,但是我们依然可以通过self调用。
class Cat(object):
__cat_type = 'cat'
def __init__(self, name, sex):
self.name = name
self.__sex = sex
def run(self):
result = self.__run()
print(result)
def __run(self):
return f'{self.__cat_type}, 小猫 {self.name} {self.__sex}开学的奔跑'
def dump(self):
result = self.__dump()
print(result)
def __dump(self):
return f'{self.__cat_type} 小猫 {self.name} {self.__sex} 开学的跳着'
cat = Cat(name='小谬', sex='boy')
cat.run()
cat.dump()
print(dir(cat))
print(cat._Cat__dump())
print(cat._Cat__cat_type)
二、python中的封装
- 将不对外的私有属性或方法通过可对外使用的函数而使用(类中定义私有的,只有类内部使用,外部无法访问)
- 这样做的主要原因:保护隐私,明确区分内外。
class Parent(object):
def __hello(self, data):
print('hello %s' % data)
def helloworld(self):
self.__hello('world')
if __name__ == '__main__':
p = Parent()
p.helloworld()