基于面向对象的数据封装
1 基于面向对象的数据封装优点
- 将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;
- 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;
- 对类的属性和方法增加 访问权限控制。
2 示例
class BaseResponse(object):
def __init__(self, status=True, data=None, error=None):
self.status = status
self.data = data
self.error = error
@property
def dict(self):
return self.__dict__
def test(request):
result = BaseResponse()
nid = request.GET.get('id')
if nid == "10":
result.data = "ok"
else:
result.error = "error"
result.status = False
return JsonResponse(result.dict)
def test2(request):
result = BaseResponse()
nid = request.GET.get('id')
if nid == "10":
result.data = "ok"
else:
result.error = "error"
result.status = False
# 若没有@property装饰器的方法,需要使用以下方式调用
return JsonResponse(result.__dict__)