组合,封装,访问限制机制,property装饰器
1.什么叫组合:
组合指一个对象中,包含另一个或多个对象。
2为什么要用组合:
减少代码的冗余
耦合度:
耦合度越高:程序的可扩展性越低
耦合度越低:程序的可扩展性越高
总结:
继承:是类与类的关系,子类继承父类的属性方法,子类与父类是一种从属关系。
封装
1.什么是封装:
封装指的是可以将一堆属性和方法,封装到对象中。
PS:对象就好比一个容器,可以存放一堆属性方法。
PS:存不是目的,目的是为了取,可以通过对象的方式获取属性或方法。
2.为什么要封装:
可以通过对象的方式,存放/获取属性或方法。
对象拥有.的机制
方便胡数据的存取
访问限制机制
1.什么是访问限制机制:
• 凡是在类内部定义的属性或方法。
• 凡是__开头的属性或方法名,都会被限制,外部不能“直接访问”该属性原型。
• PS:看着像该属性或方法隐藏起来了。
• 注意:凡是在类内部定义__开头的属性或方法,都会变形为__类名__属性/方法
2.为什么要有访问限制?
将一些隐私的数据,隐藏起来,不让外部轻易获取
接口:
可以将一对数据封装成一个接口,可以让用户调用接口。
并且通过相应的逻辑,最后再将数据返回给用户。
class User:
__name = 'tank'
def __run(self):
print('tank is runing...')
# print(User.__name)(报错)
obj = User()
print(obj._User__name)
class User:
__name = 'tank'
__age = 17
__sex = 'male'
__ID = '455454544545454545'
__bal = 1555555
def parse_user(self,username,password):
if username == 'tank_iam' and password == '123':
print(f'''
通过验证,获取用户信息。
用户名:{self.__name}
用户年龄:{self.__age}
用户性别:{self.__sex}
用户ID:{self.__ID}
用户存款:{self.__bal}
''')
else:
print('检验失败,无法查询')
def __run(self):
print('tank is runing...')
obj = User()
obj.parse_user('tank_iam','123')
property装饰器:
python内置装饰器,可以装饰在类内部的方法上。可以将该方法调用方式由--》对象方法()--》对象方法
为什么用它:
PS:在某些场景下,调用的方法只是用来获取计算后的某个值
PS:必须通过对象方法()方式调用,让该方法看起来像动词
让名词的方法调用时更合理。
目的为了迷惑调用者,调用的方法误以为是属性。
class User:
def __init__(self,name,weight,heighe):
self.name = name
self.height = heighe
self.weight = weight
作者:刘浩
出处:http://home.cnblogs.com/u/cyfdtz/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。