python - 为什么我不能删除带有 delattr 的方法?

标签 python python-2.7

一定不能有错误(根据 docs of Python 2.7 ):

class C(object):
    def __init__(self):
        self.d = {}


    def set_key(self, key, val):
        self.d[key] = val


    def get_key(self, key):
        return self.d[key]


c = C()
delattr(c, 'set_key')

但是:

AttributeError: set_key

我可以对类对象执行 delattr。我可以从实例中删除绑定(bind)函数吗?

最佳答案

set_key 是类的属性,不是实例。 delattr(C, 'set_key') 按预期工作。

如果您不希望该功能仅在一个实例中可用,您可以尝试c.set_key = None

关于python - 为什么我不能删除带有 delattr 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41127710/

相关文章:

python - 如何在 OSX 10.9 (Mavericks ) 上安装 pybluez 或 LightBlue

python - 使用 pandas Rolling 对象创建列表的滑动窗口

python - numpy分段函数声称列表大小不同

python-2.7 - 预训练检查点 (.chkpt) 与 GraphDef (.pb)

python - Python 2.7 中的自定义 JSON 编码器以插入纯 JavaScript 代码

python - 如何使用值列表中的列创建新的数据框(下面有更好的描述)?

python - NLTK 关系提取 - relextract.extract_rels 中的自定义语料库

python - 简单的 get/post 请求在 python 3 中被阻止,但在 python 2 中则不然

python - 抑制单元测试中的补充错误消息

python - 3d numpy 数组中的特定类型排序