Pythonic方式调用多个函数

时间:2017-12-05 06:00:22

标签: python

是否有一种pythonic方式来调用多个函数?

我可以立即想到两个简单的方法:

1 - 将它们分开写出来

func1()
func2()
func3()

2 - 用"或"连接它们在一行:

func1() or func2() or func3()

我还没有潜入线程和并发的世界。假设这些功能不需要很长时间才能运行而且不需要在同一时刻点火,那么我列出的简单方法是否有任何警告?

1 个答案:

答案 0 :(得分:1)

这两个人不会做同样的事情:

In [ ]: def func1():
   ...:     print("func1 has been run!")
   ...:     return True
   ...: def func2():
   ...:     print("func2 has been run!")
   ...:     return True
   ...: 
   ...: print("Method 1")
   ...: func1()
   ...: func2()
   ...: print("Method 2")
   ...: func1() or func2()
   ...: 
Method 1
func1 has been run!
func2 has been run!
Method 2
func1 has been run!

这是因为如果第一个值为true,则or没有理由检查第二个值。因此,它没有运行。 and也是如此,这在很多情况下实际上非常有用:

def char_at_index_four(string, char):
    return len(string) > 4 and string[4] == char

如果评估了第二个条件而不考虑第一个条件,如果len(string) <= 4,我们会得到IndexError