私有权限
在Python种,可以为实例属性和方法设置私有权限,即设置某个实例属性和方法不继承给子类
设置私有权限方法:在属性名或方法名前面加两个下划线:_ _
应用场景
在实际开发中,对象的某些属性和方法可能只希望在对象的内部被使用。
而不希望在外部被访问到。
显而易见,私有属性就是对象不希望公开的属性,
私有方法就是对象不希望公开的方法。
# 1.师傅类
class Master(object):
def __init__(self):
self.kongfu = '煎饼果子配方'
self.__money = 200000
def make_cake(self):
print(f'运行{self.kongfu}制作煎饼果子')
# 2.徒弟类
class Tusun(Master):
pass
xiaoqiu = Tusun()
# xiaoqiu.__make_cake()
# # 对象不能在外部直接访问带有属性和私有方法
# # 子类无法继承父类的私有属性和私有方法
# print(xiaoqiu.__money)
获取和修改私有属性值
在Python中,一般定义函数名get_xx用来获取私有属性
定义set_xxx用来修改私有属性值
# 1.师傅类
class Master(object):
def __init__(self):
self.kongfu = '煎饼果子配方'
self.__money = 200000
def make_cake(self):
print(f'运行{self.kongfu}制作煎饼果子')
# def get_money(self):
# return self.__money
#
# def set_money(self):
# self.__money = 500000
# print(self.__money)
# 2.徒弟类
class Tusun(Master):
pass
xiaoqiu = Tusun()
# xiaoqiu.__make_cake()
# # 对象不能在外部直接访问带有属性和私有方法
# # 子类无法继承父类的私有属性和私有方法
# print(xiaoqiu.__money)
# print(xiaoqiu.get_money())
# xiaoqiu.set_money()
print(xiaoqiu._Master__money)
——装饰器——
装饰器是Python的一个重要部分,简单地说:他们是修改其他函数的功能的函数。他们有助于让我们代码的更加简洁
# 定义装饰器
def upgrade(f):
def driling():
print('钻火圈')
f()
return driling # 闭包
@upgrade # 使用装饰器
def cat():
print('抓老鼠')
def dog():
print('看家')
cat()
装饰器:不改变原有函数,对函数的功能进行增加,
内置装饰器
Python自己写好的装饰器,我们可以直接使用
property:方法可以像属性一样调用
classmathod :类方法 把你自动传入的实例对象变成自动传入类
staticmethod:静态方法,不需要传入任何的参数 实例对象和类名都不需要传
class Person():
def __init__(self,name):
self.name = name
@property
def play(self):
print(self.name+'play') # 字符串拼接
# cls :类 self 对象
@classmethod
def eat(self):
print(f'{self}吃饭')
@staticmethod
def sleep():
print(f'睡觉方法')
ayan = Person('阿言')
# ayan.play
ayan.eat()
# ayan.sleep
———————————————————————————————————————————