python - __new__ 方法返回与其第一个参数类型不同的对象的用例是什么?

标签 python class object constructor

文档 implies that it's ok __new__(cls, ...) 返回类型不同于 cls 的对象。它说在那种情况下 __init__() 不会被调用。它没有明确说明,但常识或简单测试证实生成的对象不会具有 cls 类型。

为什么允许这种看似奇怪的行为?用例是什么?这显然是故意的。

最佳答案

当您为单元测试创​​建模拟对象时,它会很有用。

您可以更改 __new__ 方法以在某些情况下返回具有相同接口(interface)的另一个对象,与原始对象相同(例如模拟原始类实例的行为),而无需修改其余代码。

关于python - __new__ 方法返回与其第一个参数类型不同的对象的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206124/

相关文章:

python - 聚合、排名、分箱、重命名数据框中的每一列

C++ 游戏访问单独的类变量

json - 如何展开 JSON 对象?

Javascript 将 2 个数组映射到 1 个对象

python - GPU 上的 PyTorch Slow Batch 矩阵乘法

python - 如何使用 Python 的 Pandas 从多列中创建一个列表?

python - 在pygame中用鼠标移动可缩放矩形

java - 如何使用java检查本体一致性

c++ - 不能使用来自另一个文件的类 (c++)

python "in"类应用程序