问题标签 [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 - 如何通过 cloudpickle 腌制 python-attrs 类函数?
我正在使用 cloudpickle 来传递函数,我想attrs
通过 cloudpickle 传递一个类函数。
运行这给了我1 + test + 2.4
而 cloudpickle 实现
给我错误:(TypeError: can't pickle _thread._local objects
我将在底部发布完整的错误日志)
我相信我需要实现一些__getstate__
或__reduce__
功能来让 cloudpickle 腌制课程,但我都尝试过,但没有任何运气。
添加功能:
给出同样的错误
为了实现这一目标,我应该实施什么?
蟒蛇错误日志:
python - 如何使用 python attrs 为可变属性提供默认值?
刚开始用python attr,看起来不错。该包允许通过使用工厂创建新对象来轻松创建空的可变参数,但我不清楚使用默认值填充这些空对象的预期方法。例如,这可以创建一个具有默认值的新列表,但默认值会在方法调用中丢失:
python - 动态定义依赖于先前定义的属性的属性
我想要一个代表路径root
和任意数量的子目录的对象,这些子目录是用os.path.join(root)
. 我想用 , , 等形式访问这些路径self.root
...self.path_a
除了self.path_b
直接通过 访问它们之外self.path_a
,我还希望能够遍历它们。不幸的是,下面的方法不允许通过attr.astuple(paths)
下面的第一段代码是我想出的。它有效,但对我来说有点hacky。由于这是我第一次使用attrs,我想知道是否有更直观/惯用的方法来解决这个问题。我花了很长时间才弄清楚如何编写下面相当简单的类,所以我想我可能遗漏了一些明显的东西。
我的方法
输出
以下是我的第一次尝试,它不起作用。
尝试失败
输出
python - 如何使用 attrs 和 cattrs 反序列化带有可选字段的 json
我想使用 attr 和 cattrs 反序列化 MongoDB 文档。由于 noSQL 没有固定的模式,我需要以某种方式指向 attr.ib-s 可能会丢失它们,并且在这种情况下不要将它们添加到 dict 的对象中。
我以前使用过滤锅来做这种事情,它在 colander.SchemaNode 构造函数中提供了一个“缺失”参数,它通过将“colander.drop”作为参数传递来做到这一点。我想知道如何对这些库做同样的事情,我在文档中没有找到任何东西。所以:
应该返回一个只有 A 和 B 属性的对象。我一直在尝试使用一些参数(init、default...),甚至使用来自键入 lib 的 Optional 类,但是我尝试的所有方法都以某种方式返回了该属性。
谢谢你的帮助。
python-attrs - 在转换器中获取异常的属性名称
当验证器中发生错误时,可以将失败属性的名称添加到错误消息中,因为该名称已传递给验证器。
但是,如果转换器中发生错误,我看不到获取失败属性名称的方法,例如
我该如何处理这种情况?
python - 具有可迭代字段的冻结和可散列数据类
现在我终于放弃了对 Python 2 的支持,我正在从 Python 3 迁移attrs
到 Python 3 dataclasses
,并且有一个问题让我特别苦恼。
假设我有一个冻结且可散列的类MyClass
,其中一个字段my_field
为 type tuple
。
多亏了attrs
转换器,我能够提供灵活的 API,客户端能够my_field
使用各种类型进行实例化,例如list
,set
或dict_keys
. 在创建类之前,它们都会自动转换为 a tuple
。
我可以保留这个 APIdataclasses
吗?
根据要求,一个小代码示例:
python - attrs.asdict() 中的列表类型缺少 dunders?
我试图list()
使用 Python 装饰器创建一个类的嵌套attrs
,并注意到它attrs.asdict()
在某些级别的子变量上不起作用。这样:
attrs.asdict(mlle)
显示正常attrs.asdict(mlle.list_of_list_of_elements)
#失败attrs.asdict(mlle.list_of_list_of_elements[0])
显示正常
我的工作示例是:
现在继续使用该attr.asdict()
功能...
我很确定我做错了一些简单的事情,因为我认为我用attrs
.
我更感到困惑的attr.asdict()
是,在每个虚线子变量上都不能顺利使用,这样mlle
和mlle.list_of_list_of_elements[0]
工作,但不是mlle.list_of_list_of_elements
介于两者之间。
python - 如何使用 attr.validators.optional
根据attrs 文档,可选属性应声明如下:
但是,当我尝试使用可选属性时,我得到以下结果:
具有强制属性的类
类定义
类的实例化
缺少属性好的
类型无效好的
正确的类型好的
具有可选属性的类
类定义
类的实例化
缺少属性KO
类型无效好的
正确的类型好的
使用可选属性我做错了什么?我的误解在哪里?
python - 用 cattrs 解构一个复杂的类
我在使用attrs
/cattrs
将自定义数据类转换为 JSON 格式时遇到问题。我的班级有以下形式:
我面临的问题是,当我尝试转换为dict
via cattrs.unstructure
,反之亦然 viacattrs.structure
时,cattrs
会显示一个错误,告诉我应该使用钩子:
我注册了一个钩子来datetime
用str
给定的格式转换为:
但后来我收到以下错误:
我需要能够使用格式为的日期时间从对象实例转换为 JSON 并返回%Y-%m-%d %H:%M:%S
。我怎样才能做到这一点?
python - 是否可以在 Python attr 中自引用类型
我想做这样的事情:
可以按 as 输入,type=Dict
但我想知道您是否可以自我引用 like type=Dict[str, cls]
,但它可能会受到 Python 可能性的限制。
谢谢。