取消拾取异常类型对象

大家好!我难住了可能是什么(希望?)一个非常简单的问题。假设我有一个类将继承自两类,调用A和b一个继承自一个需要任意数量的类在__init__参数。B不继承任何东西和需要一个参数。我不明白原因,如果一个继承自例外,由于TypeError unpickle失败:__init__()有2参数(1)如果在一个类继承自也有任意数量的参数,TypeError消失。说明:# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -进口泡菜父类:def __init__(自我,*可选):自我。可选=可选基地(父母除外):= "打印"基地,基地打印甲级(基础):通过乙级:def __init__(自我,要求):自我。需要=需要类的孩子(A, B):def __init__(自我,* args):A.__init__(自我)B。__init__(自我,* args)def test_dump (obj):打印"obj:"类型(obj), obj.__dict__泡菜。转储(obj文件("/ tmp /泡菜。p ', ' w '), 1)试一试:加载= pickle.load(文件("/ tmp / pickle.p"))打印"加载",类型(加载),loaded.__dict__除了TypeError, e:打印"未能加载",e打印test_dump(儿童(7))# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -在python 2.5.2我得到以下输出:# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -基础= __main__.Parentobj: <类型"实例"{"可选的":"要求":7日()}<加载类型"实例"{"可选的":"要求":7日()}基础= <类型"exceptions.Exception">obj: <类的__main__。孩子的{"要求":7}未能加载__init__()有2参数(1)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -任何帮助将不胜感激。谢谢,大卫

标签: python

添加新评论