gpt4 book ai didi

python - Python 中可以存在非对象吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:53 24 4
gpt4 key购买 nike

众所周知,Python中万物皆对象。我想知道的是,是否可以创建一个“对象”x,以便 isinstance(x, object) 返回 False。我怀疑充分滥用 CPython API 是可能的,尽管使用纯 Python 实现这一点会更有趣。

最初我认为旧式类会返回 False,因为对象层次结构可能不完全适用,但看起来 isinstance(x, object) 确实是 True 对于旧式类的实例。

虽然这主要是出于理论上的兴趣,但如果 Python 允许创建一个与基本 object 类型断开连接的新对象层次结构,这可能会很有趣(或危险)。

最佳答案

当然你可以通过 C API 做任何事情(特别是通过很棒的 forbiddenfruit 模块)

>>> from forbiddenfruit import curse
>>> class C: pass
...
>>> curse(type, "__instancecheck__", lambda cls, obj: type(obj) != C)
>>> isinstance(C(), object)
False
>>> isinstance(C(), C)
True

关于python - Python 中可以存在非对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30340898/

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