设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 17724|回复: 3
打印 上一主题 下一主题

定义函数a,然后函数b和c都调用了函数。函数会重复执行

[复制链接]

12

主题

1

好友

307

积分

中级会员

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2021-3-11 17:23:03 |只看该作者 |倒序浏览
有个性能问题要请教一下:
def a():

def b():
  a()

def c():
  a()
这么写是不是会执行两次a()?还是说a()会在缓存里,其他方法调用一次之后后面再调用就是直接调缓存里的数据?

现在实际使用是在b()、c()里面,a()会执行两次。有没有办法只让a()执行一次,然后其他函数再调用直接调用结果,不调用函数?
回复

使用道具 举报

12

主题

1

好友

307

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2021-3-11 17:31:42 |只看该作者
有没有办法存一个结果集,比如先实例化 a =a() ,然后b()、c()调用就不会再进a()。
  1. >>> %Run newDownTest.py
  2. It's comming jump_link()!
  3. It's comming getAllSession()!
  4. It's comming getAllLinks()!
  5. It's comming down_link()!
  6. It's comming getAllSession()!
  7. It's comming mp3Name()!
  8. It's comming down_link()!
  9. It's comming getAllSession()!
  10. It's comming jump_link()!
  11. It's comming getAllSession()!
  12. It's comming down_link()!
  13. It's comming getAllSession()!
  14. It's comming mp3Name()!
  15. It's comming down_link()!
  16. It's comming getAllSession()!
复制代码
这里一直在频繁进入函数
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2021-3-12 21:15:14 |只看该作者
xielong0120 发表于 2021-3-11 17:31
有没有办法存一个结果集,比如先实例化 a =a() ,然后b()、c()调用就不会再进a()。这里一直在频繁进入函数 ...

你这个方法就可以,但不建议用同一个名字

x = a()

def b():
    return x

def c():
    return x
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

12

主题

1

好友

307

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2021-3-16 14:45:19 |只看该作者
crossin先生 发表于 2021-3-12 21:15
你这个方法就可以,但不建议用同一个名字

x = a()

好的,谢谢老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-4 06:03 , Processed in 0.018161 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部