python - 为什么属性在 getattr() 中作为字符串传递?
问题描述
打印变量的值时,不要在变量周围添加引号,但是当使用 getattr() 函数访问属性的值时,您将其作为字符串传递。这是有原因的还是我必须记住的?
解决方案
这就是 的目的getattr
。这样您就可以根据存储在内存中的字符串动态访问属性。
示例场景:
user_provided_input = input()
getattr(some_object, user_provided_input + "dummy")
如果用户键入“justa”,这将与以下内容完全相同:
some_object.justadummy
如果用作字符串文字,您还可以使用通常会导致语法错误或其他类型错误的字符串:
>>> setattr(some_object, ".", "dummyvalue")
>>> getattr(some_object, ".")
'dummyvalue'
>>> some_object..
File "<stdin>", line 1
some_object..
^
SyntaxError: invalid syntax
推荐阅读
- php - 从 Live Hosted Server 到本地 XAMPP 的网站备份失败
- android - 在 Android 中以编程方式创建 URL 快捷方式
- flutter - 如何使 SliverGrid 居中?
- python-3.x - 在定义了“with”语句的类中多次尝试使用相同的 SUIT
- node.js - 为什么订阅方法返回订阅者而不是响应值
- css - 如果字符数超过 200,则在引导表中使用省略号
- r - 如何使用 dplyr 获取每行具有最大值的列
- pine-script - Pinescript - 每次计算都应该调用函数
- android - 创建一个团队喜欢动态布局android
- javascript - 使用 MomentJS 从 ISODate 中减去 30 天