gpt4 book ai didi

python - __name__ 属性的其他用途

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:41 25 4
gpt4 key购买 nike

我正在通过阅读 Dive Into Python 来学习 Python在网上,在第 2 章中,我看到您可以使用 __name__ 属性进行测试,所以我想知道,是否有人知道此属性的其他用途?谢谢

最佳答案

我曾经有一个命令行脚本文件的装饰器。

装饰器是这样使用的:

@command
def someFunc():
# code goes here

装饰者正在做这样的事情:

commands = {}
def command(func)
commands[func.__name__] = func
return func

然后我可以做这样的事情:

commandName = raw_input()
commands[commandName]();

它会从控制台读取命令的名称并调用它 - 如果它之前被标记为装饰器(因此不会像使用 input 那样进行危险的调用)。

(在我的代码中,名称取自命令行参数,而不是 raw_input。)

这很容易让我提供可通过其名称访问的命令。这是用途之一 - 一般规则是“当您想将自己的语义添加到函数定义的概念时它很有用”。一般来说,装饰器也是如此。

(顺便说一句,有一个 func.func_name 字段,它比 func.__name__ 使用起来更正确,因为标识符以 __ 在 Python 中应该是私有(private)的,据我所知——只是一个小细节)

关于python - __name__ 属性的其他用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350592/

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