代码之家  ›  专栏  ›  技术社区  ›  moshevi

通过调用重新分配python函数以使用另一个函数

  •  2
  • moshevi  · 技术社区  · 7 年前

    我试着做一些极端的猴子修补,得到了意想不到的结果。 我重新分配了 __call__ 函数指向不同函数的方法。

    我期望改变函数的行为,但它似乎保留了它原来的函数。

    • function 亚纲 object 或者,是不是有些“异国情调” ?
    • 它是否覆盖 __getattribute__ 或 __getattr__ 灌篮方法?

    注意 功能 上课。


    def add(a,b):
        return a+b
    
    def minus(a,b):
        return a-b
    
    add.__call__ = minus
    

    运行时 add

    >>> add(1,2)
    ... 3
    
    0 回复  |  直到 7 年前