gpt4 book ai didi

python - python中的自执行函数

转载 作者:太空狗 更新时间:2023-10-29 20:59:17 24 4
gpt4 key购买 nike

我偶尔用过(lambda x:<code>)(<some input>)在 python 中,以保持我的 namespace (在全局 namespace 或其他地方)的清洁度。 lambda 解决方案的一个问题是,就其可能包含的内容而言,它是一种非常有限的结构。

注意:这是javascript编程的习惯

这是一种推荐的保留命名空间的方式吗?如果可以,有没有更好的实现自执行功能的方法?

最佳答案

关于后半题

is there a better way to implement a self-executing function?

标准方式(<function-expression>)()在 Python 中是不可能的,因为在不破坏 Python 的基本语法的情况下,无法将多行 block 放入括号中。尽管如此,Python 确实认识到需要将函数定义用作表达式并提供 decorators (PEP318)作为备选。 PEP318 对这个问题进行了广泛的讨论,以防有人想阅读更多内容。

有了装饰器,就像

evalfn = lambda f: f()

@evalfn
def _():
print('I execute immediately')

虽然在语法上有很大不同,但我们将看到它实际上是相同的:函数定义是匿名的并用作表达式。

与下面所示的 let-call-del 方法相比,将装饰器用于自执行函数有点矫枉过正。但是,如果有很多自执行函数,一个自执行函数变得太长,或者您根本懒得给这些自执行函数命名,则可能值得一试。

def f():
print('I execute immediately')
f()
del f

关于python - python中的自执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12049356/

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