1. 封装
广义的封装
函数和类的定义本身,就是封装的体现
狭义的封装
一个类的某些属性,在使用的过程 中,不希望被外界直接访问,而是把这个属性给作为私有的【只有当前类持有】,然后暴露给外界一个访问的方法即可【间接访问属性】
封装的本质
就是属性私有化的过程封装的好处:提高了数据的安全性,提高了数据的复用性
2. 私有化
用法:
如果想让成员变量不被外界直接访问,则可以在属性名称的前面添加两个下划线__,成员变量则被称为私有成员变量
私有属性的特点:只能在类的内部直接被访问,在外界不能直接访问
代码演示:
#1.属性不私有化
class Person():
def __init__(self,name,age):
self.name = name
self.age = age
def myPrint(self):
print(self.name,self.age)
#2.属性私有化
class Person1():
def __init__(self,name,age):
self.name = name
self.__age = age
def myPrint(self):
print(self.name,self.__age)
p1 = Person1("abc",10)
p1.myPrint() #abc 10
3. get,set函数
4. @property装饰器
装饰器的作用:可以给函数动态添加功能,对于类的成员方法,装饰器一样起作用
Python内置的@property装饰器的作用:将一个函数变成属性使用
@property装饰器:简化get函数和set函数
使用:@property装饰器作用相当于get函数,同时,会生成一个新的装饰器@属性名.settter,相当于set函数的作用
作用:使用在类中的成员函数中,可以简化代码,同时可以保证对参数做校验