Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';属性asdict(x)和x的区别是什么?_Python_Python Attrs - Fatal编程技术网

Python 什么';属性asdict(x)和x的区别是什么?

Python 什么';属性asdict(x)和x的区别是什么?,python,python-attrs,Python,Python Attrs,在Python中,当您需要增强类的属性的dict时,使用\uu dict\uu和attr.asdict()之间有什么区别?你应该用哪一种?例如,在本例中,它们具有相同的结果: 导入属性 @属性(auto_attribs=True) 类别MyClass: x:str value=MyClass(x=“hello”) 打印(值) #{'x':'hello'} 打印(属性asdict(值)) #{'x':'hello'} \uuuuu dict\uuuu是一个实现属性,它只存储每个实例的“直接”属性(

在Python中,当您需要增强类的属性的dict时,使用
\uu dict\uu
attr.asdict()之间有什么区别?你应该用哪一种?例如,在本例中,它们具有相同的结果:

导入属性
@属性(auto_attribs=True)
类别MyClass:
x:str
value=MyClass(x=“hello”)
打印(值)
#{'x':'hello'}
打印(属性asdict(值))
#{'x':'hello'}

\uuuuu dict\uuuu
是一个实现属性,它只存储每个实例的“直接”属性(因此在那里找不到属性或其他计算属性)。它只存在于基于dict的类型中——基于插槽的类型根本没有dict


attrs.asdict
OTHO使用类型的元数据获取属性名称列表(这样它可以在基于插槽的类上工作),使用
getattr()
获取值(这样它可以正确检索计算的属性),可以在“attrs启用”的属性上递归,等等。当然,它会,仅在启用属性的类型上工作…

\uuuu dict\uuuu
是一个实现属性,它只存储每个实例的“直接”属性(因此在那里找不到属性或其他计算属性)。它只存在于基于dict的类型中——基于插槽的类型根本没有dict

attrs.asdict
OTHO使用类型的元数据获取属性名称列表(这样它可以在基于插槽的类上工作),使用
getattr()
获取值(这样它可以正确检索计算的属性),可以在“attrs启用”的属性上递归,等等。当然,它会,仅在启用属性的类型上工作