如何检查物体是否可腌制

发布于 2021-01-29 16:50:58

我有要腌制的各种类型的对象的列表。我只想腌制那些可腌制的。除了尝试腌制对象外,是否有标准的方法来检查对象是否属于可腌制类型?

该文档说,如果发生了酸洗异常,那么可能已经在将某些字节写入文件后就已经发生了,因此尝试对对象进行酸洗作为测试似乎不是一个好的解决方案。

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在这种情况下,我会建议进行 鸭子 测试。尝试将其放入合适的临时文件或内存文件中,如果失败,则丢弃结果,如果重新命名成功,则将其丢弃。

    为什么?

    在python中,您可以通过两种方式检查对象是否具有某些属性。

    检查object是否是某些Abstract Base
    Class
    的实例。例如:Number“数字层次结构的根。如果只想检查参数x是否为数字,而又不关心哪种类型,请使用isinstance(x,Number)。”

    或者尝试一下,然后处理异常。这在许多情况下都会发生。蟒蛇哲学以 鸭子 为基础。关键字包括
    鸭子输入

    鸭子测试

    EAFP

    我什至认为在社区的压力下,第一个已经正确地引入了python3,而许多人仍然坚信 鸭子 是python的发展之路。

    AFAIK没有特殊的先决条件可以检查,ABC如果有酸洗,也不能检查任何对象。所以剩下的就是 鸭子

    也许可以尝试其他方法,但是不值得。很难对对象进行手动自省以初步了解其是否适合酸洗。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看