Crossin的编程教室

标题: 定义函数a,然后函数b和c都调用了函数。函数会重复执行 [打印本页]

作者: xielong0120    时间: 2021-3-11 17:23
标题: 定义函数a,然后函数b和c都调用了函数。函数会重复执行
有个性能问题要请教一下:
def a():

def b():
  a()

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

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

作者: xielong0120    时间: 2021-3-11 17:31
有没有办法存一个结果集,比如先实例化 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()!
复制代码
这里一直在频繁进入函数
作者: crossin先生    时间: 2021-3-12 21:15
xielong0120 发表于 2021-3-11 17:31
有没有办法存一个结果集,比如先实例化 a =a() ,然后b()、c()调用就不会再进a()。这里一直在频繁进入函数 ...

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

x = a()

def b():
    return x

def c():
    return x
作者: xielong0120    时间: 2021-3-16 14:45
crossin先生 发表于 2021-3-12 21:15
你这个方法就可以,但不建议用同一个名字

x = a()

好的,谢谢老师




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5