python 优化函数_优化函数调用中的python性能

下面的示例代码与我正在处理的主代码类似。我看到的主要瓶颈是调用call-fun函数。有没有办法加快速度。。示例:不使用dictionary对象self.\d而使用其他对象进行函数查找?在主代码中,“名称”列表相当大。为了快速理解代码(。。。但如果要打印输出,请确保将范围内的i(500000)更改为范围内的i(1)import time

names = [ ('f_a', ([1,1],)), ('f_b', ([3,4],) ) ]

class A(object):

def __init__(self):

self._d = {}

for n in names:

self._d[n[0]] = getattr(self, n[0])

def call_fun(self, k):

#print " In call_fun: k: ", k

return self._d[k[0]](*k[1])

def f_a(self, vals):

#print " I am here in f_a.. vals=", vals

v = 2*vals

return v

def f_b(self, vals):

v = 3*vals

return v

# Run the code

start = time.clock()

a = A()

print "names[0]:", names[0]

for i in range(5000000):

a.call_fun((names[0]))

print "done, elapsed wall clock time (win32) in seconds: " , time.clock() - start

以下是分析输出:python -m cProfile --sort cumulative foo.py

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值