什么是便利功能?

时间:2018-11-17 00:59:35

标签: python python-3.x

在timeit模块中有以下代码-什么是便捷功能?我用Google搜索它,但找不到一个好的答案:

ready

2 个答案:

答案 0 :(得分:3)

它是一个存在的函数,因此您不必自己去实例化和跟踪对象。例如,在timeit模块中,唯一可以真正实现所需功能的就是Timer对象-但是作为程序员,您不想关心Timer的生命周期,或将其带入您的命名空间。因此,此timeit.timeit()函数相对匿名地创建一个Timer对象,并在其上调用timeit(),而无需跟踪该Timer对象。 它会按照您想要的去做,您不必担心细节-方便。

还有许多其他这样的函数,它们实质上是用于实例化类和运行方法的包装器-另一个示例是subprocess.run(),它创建了一个Popen对象,程序员再次没有这样做。不必跟踪。

另请参阅the Wikipedia definition of a convenience function

答案 1 :(得分:0)

考虑一下:

animal_list = ["Bear", "Snake", "Snail"]
class_list = ["Mammal", "Reptile", "Gastropod"]

# Scenario 1
for i in range(len(animal_list)):
    animal = animal_list[i]
    class_ = class_list[i]
    print(f"A {animal} is a {class_}.")

# zip() - a convenience function - Scenario 2
for animal, class_ in zip(animal_list, class_list):
    print(f"A {animal} is a {class_}.")

产生了相同的结果:

A Bear is a Mammal.
A Snake is a Reptile.
A Snail is a Gastropod.

方案1:不使用便捷功能

  • 混乱的代码;很难阅读和理解

方案2:使用便利功能

  • 更干净的代码和更多便捷