python - 是否可以在 Python attr 中自引用类型
问题描述
我想做这样的事情:
@attr.s
class A(object):
a_dict = attr.ib(factory=Dict, type=Dict[str, A], validator=optional(instance_of(Dict)))
可以按 as 输入,type=Dict
但我想知道您是否可以自我引用 like type=Dict[str, cls]
,但它可能会受到 Python 可能性的限制。
谢谢。
解决方案
问题是class A(object): A
导致NameError: name 'A' is not defined
. 这意味着在定义块中创建类时,不能通过其名称引用类。
我认为要在打字时解决这个问题,可以使用字符串来代替:type=Dict[str, 'A']
. 我记得看到这是如何进行前向引用的,但这可能不正确。
推荐阅读
- spring-boot - Consul Connect 中 Prometheus 的 Spring Boot 执行器指标
- javascript - JavaScript - 将选定的数组变量添加到 html 表单输入标签
- html - 以菱形居中文本并将其余内容设为省略号
- influxdb - 时间戳不会被解析或写入 InfluxDB
- python-3.x - 无法使用 python 3 websocket 库连接到远程安全 web socket服务器
- python - 如何在 tkinter 中设置文本小部件的宽度以使文本小部件等于行长
- ios - Is it possible to assign a ViewController to a SwiftUI view?
- ruby-on-rails - 如何修复 Ruby 错误:`require': cannot load such file -Programing Ruby 1.9 & 2.0 4th edition
- python - KIVY:如何改变标签颜色?
- java - 多个主屏幕小部件 - Android