2024-04-26 05:34:17 发布
网友
众所周知,在Python中,一切都是一个对象。我想知道的是是否可以创建一个“object”x,这样isinstance(x, object)返回{}。我怀疑在充分滥用cpythonapi的情况下是有可能的,不过用纯Python实现这一点会更有趣。在
x
isinstance(x, object)
最初我认为旧样式的类将返回False,因为对象层次结构可能无法完全应用,但是对于旧样式类的实例,isinstance(x, object)实际上是{}。在
False
虽然这主要是理论上的兴趣,但是如果Python允许创建一个与基本object类型断开连接的新对象层次结构,这可能会很有趣(或危险)。在
object
当然,您可以通过C API做任何事情(特别是通过awesomeforbiddenfruit模块)
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
从文档中,第3章(数据模型):“Python程序中的所有数据都是由对象表示的。”似乎足够清楚了。你说替代方案“可能很有趣”,但是已经有很多有趣的东西不是Python的。在
当然,您可以通过C API做任何事情(特别是通过awesome
forbiddenfruit
模块)从文档中,第3章(数据模型):“Python程序中的所有数据都是由对象表示的。”似乎足够清楚了。你说替代方案“可能很有趣”,但是已经有很多有趣的东西不是Python的。在
相关问题 更多 >
编程相关推荐