是否有一种pythonic方式来调用多个函数?
我可以立即想到两个简单的方法:
1 - 将它们分开写出来
func1()
func2()
func3()
2 - 用"或"连接它们在一行:
func1() or func2() or func3()
我还没有潜入线程和并发的世界。假设这些功能不需要很长时间才能运行而且不需要在同一时刻点火,那么我列出的简单方法是否有任何警告?
答案 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
。