首页 > 技术文章 > Python 性能优化——对象绑定

zhuangzebo 2015-05-24 14:41 原文

不同函数调用方式对应不同的绑定次数:

import profile


class A:
    def f(self):
        pass

def foo():
    a = A()
    for i in range(100000):
        a.f()

if __name__ == '__main__':
    profile.run("foo()")
import profile


class A:
    def f(self):
        pass

def foo():
    a = A()
    func = a.f
    for i in range(100000):
        func()

if __name__ == '__main__':
    profile.run("foo()")

因为调用a.f()时,a对象需要对f进行一次绑定,如果调用一次,就进行绑定一次,很显然第一次情况比第二种情况的开销大了很多。

第二种况只绑定一次。

 

推荐阅读