问题标签 [python-attrs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 任何用于序列化属性的 cattrs 解决方案都使用不同的名称?
我试图找到一个类似于 java Jackson ObjectMapper的解决方案,它可以将 python 对象序列化/反序列化为 json。并发现
cattrs最接近我的需要。但它不能像
firstName
在 json 中使用但first_name
在反序列化对象中那样进行属性映射。attrs-serde可以进行属性映射,但不能进行递归反序列化。
这个问题可以在这个例子中说明,
使用cattr 的任何更优雅的解决方案?
python - mypy 抱怨 attrs 类中的 TypedDict 具有不兼容的类型
我DictWithOnlyX
在 attrs 数据类中有一个 TypedDict Example
,其中 mypy 抱怨从getdict()
我的类的方法返回的类型,即使声明了返回类型:
mypy 抱怨error: Incompatible return value type (got "DictWithOnlyX", expected "DictWithOnlyX")
具有讽刺意味的是,当通过声明的类型来解决 mypy 问题时,attrib()
我得到了另一个 mypy 错误 - 打个痣!
mypy 抱怨error: Incompatible types in assignment (expression has type "DictWithOnlyX", variable has type "DictWithOnlyX")
上述代码的两个版本都运行良好。蟒蛇 3.7.5。
两条错误消息都很神秘,因为它们看起来自相矛盾——(据报道)相同的类型怎么可能是“不兼容的”?
python - attr.asdict(x) 和 x.__dict__ 有什么区别?
在 Python 中,当你想要你的attrs__dict__
-enhanced 类的属性的字典时,使用和有什么区别attr.asdict()
?你应该使用哪一个?例如,在此示例中,它们具有相同的结果:
python-3.x - 是否可以根据计算属性使 Attrs 类具有可比性?
我正在使用 Python3.7 为我的项目实现一个简单的负载均衡器。
我使用 aqueue.PriorityQueue
来保存一组预定义的工人。工人在队列中的顺序由他们的每个负载定义,该负载是根据分配给工人的作业数量来评估的。也就是说,有一个jobs
属性是 Job 实例的列表,并且加载是由jobs
.
作业分配的每次迭代,通过检索负载最低(作业数量最少)的工人,queue.get()
分配后,它将put
回到队列中。
这是简化的片段。
我知道如果我自己添加那些用于比较的 dunder 方法,即__ne__
、__lt__
、和__le__
,我可以实现这一点。__gt__
__ge__
但我的问题是,是否可以attrs
根据计算属性使一个类具有可比性?如果可能的话,如何做到这一点?
python-attrs - 大致比较用`attrs`定义的类的十进制属性
我有一个Thing
带有浮点x
属性的类。我想大致比较两个Thing
相对容差为 1e-5 的实例。
我是否需要覆盖该__eq__
方法,或者是否有一种干净的方式来告诉attr
使用math.isclose()
或自定义比较功能?
python - 使用其他值转换 python attr.ib
我正在使用 attrs 库为路径创建数据结构。我希望第一个属性是其他自动加入的根目录。我想要这样的东西:
这可以解决问题,但converter
函数只给出一个参数。是否有一种干净的方法可以在验证之前使用其他属性转换值?需要三个参数(其中validator
一个是对象),但它不是转换值的正确位置。将所有内容都投入其中也__attrs_post_init__
违背了使用 attrs 的目的。
python - mypy 无法识别 attrs:无法确定“s”的类型
我需要安装其他东西以获得attrs
支持吗?
python - 如何在 python-attrs 类中忽略额外的 kwargs
例如:
上面的代码会抛出错误,因为类Foo
没有b
attr。但我想丢弃传递b
的值,就像我刚刚调用f = Foo(a=1)
. 在我的用例中,我有动态 dict(我想将其转换为 attr-class),我根本不需要一些键。
jupyter-notebook - 启动 Jupyter Notebook 时出错 - @attr.s(hash=True) AttributeError: module 'attr' has no attribute 's'
我无法启动或打开 Jupyter Notebook。我已经多次卸载并安装它,仍然得到我粘贴在下面的相同错误!
它给出了一些“属性错误”。
请帮忙!