一、__reduce__()介绍

当定义扩展类型时(也就是使用Python的C语言API实现的类型),如果你想pickle它们,你必须告诉Python如何pickle它们。 __reduce__ 被定义之后,当对象被Pickle时就会被调用。它要么返回一个代表全局名称的字符串,Pyhton会查找它并pickle,要么返回一个元组。这个元组包含2到5个元素,其中包括:一个可调用的对象,用于重建对象时调用;一个参数元素,供那个可调用对象使用;被传递给 __setstate__ 的状态(可选);一个产生被pickle的列表元素的迭代器(可选);一个产生被pickle的字典元素的迭代器(可选)

二、使用案例

class ServerError(UserWarning):
# UserWarning用户代码生成的警告
def error(self):
# C语言接口,可将错误信息pickle成字符串
return self.__reduce__()[1] #返回的是(<class '__main__.ServerError'>, ('错误信息',)),所以切片取1 def instance_name(name):
try:
if not isinstance(name,str):
raise ServerError("名字必须是字符串")
except ServerError as e:
error=e.error()[0]
print(error) instance_name(123)
#作用是:可以将自定义的错误信息,组成json格式返回给前端

最新文章

  1. Spark之SQL解析(源码阅读十)
  2. 狗屎的Java规范
  3. 时间和日期控件(Calendar1)
  4. Oracle 使用小计(4)
  5. nyoj-204
  6. iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用
  7. fzu 2171 防守阵地 II
  8. STL--stack
  9. DataTable 中Distinct操作
  10. hdu 1973 Prime Path
  11. HDU-4593(水题)
  12. RocketMQ源码 — 三、 Consumer 接收消息过程
  13. 表的操作(Oracle和DB2)
  14. pytorch中的 requires_grad和volatile
  15. js:作用域总结1
  16. ASP.NET MVC 做的网站项目
  17. mysql加密函数
  18. PHP - pcntl_fork() 执行过程详解
  19. 找回 : MobileCoreServices.framework
  20. 【ocp-12c】最新Oracle OCP-071考试题库(44题)

热门文章

  1. win10 文件管理器频繁卡死
  2. 简单入门爬斗鱼颜值区妹子照片 v1.1
  3. 笨方法学Python 错误记录
  4. 001/Nginx高可用模式下的负载均衡与动静分离(笔记)
  5. Parentheses Sequence微软编程笔试
  6. python线程理论
  7. maven配置本地仓库、maven配置阿里中央仓库、eclipse配置maven
  8. 2019Android阿里&amp;腾讯&amp;百度&amp;字节面试汇总(附面试题总结、Android书单)
  9. 【Vue 2.X】基于ElementUI 实现 dialog弹窗移动效果-自定义指令系列(二)
  10. ECMAScript严格模式