gpt4 book ai didi

Python 工厂函数

转载 作者:行者123 更新时间:2023-11-28 22:53:20 26 4
gpt4 key购买 nike

同一本书中的相同示例:Python deep nesting factory functions

def maker(N):
def action(X):
return X ** N
return action

我理解它背后的概念,我认为它非常简洁,但我似乎无法想象什么时候可以使用这种方法。

我可以通过让 maker() 将 N 和 X 作为参数来轻松实现上述内容。

有没有人使用过这种类型的工厂函数并向我解释为什么你采用这种方法而不是仅仅采用多个参数?

仅仅是用户偏好吗?

最佳答案

squarer = maker(2)

print(squarer(2)) # outputs 4
print(squarer(4)) # outputs 16
print(squarer(8)) # outputs 64

本质上,这意味着您只需输入一次 N 值,之后就无法更改。

我认为这主要是编程风格,因为有多种方法可以做同样的事情。但是,通过这种方式,您只能输入一次 N 值,这样您就可以添加代码来测试一次它是否为有效值,而不是在每次调用该函数时都进行检查。

编辑只是想到了一个可能的例子(虽然它通常是通过使用一个类来处理的):

writer = connectmaker("127.0.0.1")
writer("send this text")
writer("send this other text")

然后“maker”方法将连接到该地址一次,然后在每次调用 writer() 时维护该值。但正如我所说,类似这样的东西通常是 __init__ 将存储值的类。

关于Python 工厂函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com