gpt4 book ai didi

python - 如何检测无法通过 obj.name 语法访问的属性名称?

转载 作者:行者123 更新时间:2023-11-28 21:41:33 25 4
gpt4 key购买 nike

setattr 将设置不能用于常规属性访问的名称,即 obj.name

>>> from types import SimpleNamespace
>>> my_instance = SimpleNamespace()
>>> setattr(my_instance, 'from', 0) # works
>>> getattr(my_instance, 'from')
0
>>> my_instance.from
SyntaxError: invalid syntax

如何检查此类名称以避免使用它们?

最佳答案

在 Python 3 上,

import keyword

type(key) is str and key.isidentifier() and not keyword.iskeyword(key)

我们检查属性名称是否为字符串,是否符合 Python 标识符的格式,并且不是关键字。 isidentifier 不排除关键字,因此需要额外检查。

(是的,isinstance 是一个东西,但我真的不想允许 str 子类。)

关于python - 如何检测无法通过 obj.name 语法访问的属性名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683661/

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