class CheckString:
def __init__(self, variable_type):
self.variable_type = variable_type def __set__(self, instance, value):
print('__set__:', value)
self.value = "error:类型错误"
if self.variable_type == 'str':
self.value = value if isinstance(value, str) else "error:类型错误" def __get__(self, instance, owner):
print("__get__")
return self.value
pass def __delete__(self, instance):
pass class InfoModel:
name = CheckString(variable_type='str') if __name__ == '__main__':
info = InfoModel()
info.name = "北门吹雪"
print(info.name)

通过另外一个类来描叙类变量的属性类型,这个是ORM实现的核心基础

给属性赋值会调用 __set__方法,访问属性则会调用 __get__方法,则可以获取字段的对象和其值,删除字段时候则调用 __delete__方法

北门吹雪: https://www.cnblogs.com/2bjiujiu/

最新文章

  1. AgularJS中Unknown provider: $routeProvider解决方案
  2. eclipse code templates 设置(eclipse注释模版配置)
  3. AllJoyn Bundled Daemon 使用方式研究
  4. window上使用GIT的个人经验(入门级)
  5. 【gcd+数学证明】【HDU1722】 CAKE
  6. C++指针与const
  7. python学习笔记之运算符
  8. springMVC引入Validation详解
  9. 发送邮件,出现异常:服务器响应为: Error: need EHLO and AUTH first !"
  10. log4j控制指定包下的日志
  11. BZOJ4259 残缺的字符串 多项式 FFT
  12. 前端开发者不得不知的es6十大特性(转)
  13. CAS登陆过程UML中文版
  14. MySQL实现树状所有子节点查询的方法
  15. jsp中excel文件的创建与读取
  16. error C2065:!错误:未定义标识符“pBuf);”
  17. Day15-Django
  18. vue 表单 验证 async-validator
  19. [BZOJ5361][Lydsy1805月赛]对称数
  20. flume sink两种类型 file_rool 自定义sing com.mycomm.MySink even if there is only one event, the event has to be sent in an array

热门文章

  1. 每日一学-python calendar
  2. Vue最全知识点
  3. 通过Tomcat jpress连接不到数据库
  4. python - Lambda函数 匿名函数
  5. vue的computed属性的理解
  6. 开源流数据公司 StreamNative 推出 Pulsar 云服务,推进企业“流优先”进程
  7. 洛谷 P4093 [HEOI2016/TJOI2016]序列 CDQ分治优化DP
  8. C#知识点:操作XML
  9. Oracle WITH 语句 语法
  10. pwnable之random