You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用bool_getter获取与None.__bool__等价的方法对象?

调用bool_getter获取等价于None.__bool__的对象

可以通过以下参数调用bool_getter,得到符合要求的对象:

  • 仅传入None作为位置参数:

    import types
    
    bool_getter = vars(type(None))["__bool__"].__get__
    value = bool_getter(None)
    boolNone = None.__bool__
    
    # 验证条件
    assert type(value) == type(boolNone)  # 类型一致
    assert value == boolNone              # 对象等价
    
  • 也可以同时传入实例和类作为位置参数,结果完全相同:

    value = bool_getter(None, type(None))
    

原理

vars(type(None))["__bool__"]是NoneType类的未绑定方法,它的__get__方法属于描述符机制的一部分。当传入实例None时,__get__会返回绑定到该实例的方法对象,这个对象和直接访问None.__bool__得到的对象类型一致、逻辑等价,满足要求。

内容的提问来源于stack exchange,提问作者Takuo Matsuoka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 02:02:49