庄泽波の博客

好记性不如烂笔头

Python 性能优化——对象绑定

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

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进行一次绑定,如果调用一次,就进行绑定一次,很显然第一次情况比第二种情况的开销大了很多。

第二种况只绑定一次。

 

posted on 2015-05-24 14:41  庄泽波  阅读(178)  评论(0编辑  收藏  举报

导航