gpt4 book ai didi

python - 要获得完整的 python 文件接口(interface),我需要实现的文件方法的最小子集是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:01:49 26 4
gpt4 key购买 nike

Python 拥有奇妙的 collections 具有允许您实现完整 dict 工具的模块(例如)从一组最小的方法。 file 是否有类似的东西? Python 中的界面?如果没有,您会推荐什么作为实现 file 的最小方法集? - 用于鸭子打字目的的类似对象?

你如何处理那些想在 with 中使用你的文件之类的对象的东西?语句,就像您可以使用常规文件一样,或者想要迭代它(就像您可以使用常规文件一样)或者想要调用 readline 的人或 readlines并让它做一些智能和有用的事情(就像你可以使用普通文件一样)?你必须自己实现它们吗?或者有更好的选择吗?

我知道我可以自己动手实现其中的每一个。但是 collections接口(interface)允许我实现 dict通过仅实现 __len__ , __iter__ , __setitem__ , 和 __getitem__ .我得到 pop , popitem , clear , update , setdefault , __contains__ , keys , items , values , get , __eq__ , 和 __ne__全部免费。 __dict__ 有一个最小的界面定义,如果我实现它,我会得到完整的 dict接口(interface),所有额外的方法都是根据最小接口(interface)实现的。

同样,我想知道我必须实现的最小文件接口(interface)是什么才能获得完整接口(interface)。有没有办法得到__enter__ , __exit__ , readline , readlines , __iter__next如果我只是实现 read , writeclose ,还是每次我想要完整的 file 时,我都必须自己手动实现所有内容?界面?

最佳答案

with 语句需要上下文管理器:

http://docs.python.org/library/stdtypes.html#typecontextmanager

文件类型已完全定义:

http://docs.python.org/library/stdtypes.html#file-objects

看起来很简单。

文档列出了文件和上下文管理器的方法和属性。实现那些。

您还需要什么信息?

http://docs.python.org/library/contextlib.html?highlight=context%20manager

如果你想让所有的方法都起作用,你就必须实现所有的方法。与集合不同,文件没有抽象基类。

关于python - 要获得完整的 python 文件接口(interface),我需要实现的文件方法的最小子集是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5335017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com