擅长:python、mysql、java
<p>根据定义数据类含义的<a href="https://www.python.org/dev/peps/pep-0557/#id7" rel="nofollow noreferrer">PEP 557</a></p>
<blockquote>
<p>The <code>dataclass</code> decorator examines the class to find fields. A field is defined as any variable identified in <code>__annotations__</code>. That is, a variable that has a type annotation.</p>
</blockquote>
<p>也就是说,这个问题的前提条件(例如“如何将<code>dataclass</code>与没有类型注释的字段一起使用”)必须被拒绝。<code>dataclass</code>上下文中的术语“field”要求属性具有定义的类型注释。</p>
<p>请注意,使用像<code>typing.Any</code>这样的泛型类型注释与具有未注释的属性不同,因为该属性将出现在<code>__annotations__</code>中。</p>
<p>最后,在只提供属性名的情况下,helper函数<code>make_dataclass</code>将自动使用<code>typing.Any</code>作为类型注释,这也在PEP中通过一个例子提到。</p>