python 数据类没有属性 post_init

Nul*_*yte 0 python post init

当我运行下面的代码时:

import pandas as pd
from dataclasses import dataclass


@dataclass
class SomeClass:
    df_in: pd.DataFrame

    def __post__init__(self):
        self.b = 1


if __name__ == '__main__':
    df_in = pd.DataFrame([])
    p = SomeClass(df_in=df_in)
    p.b
Run Code Online (Sandbox Code Playgroud)

我明白了

AttributeError: 'SomeClass' object has no attribute 'b'
Run Code Online (Sandbox Code Playgroud)

为什么?

编辑:

我是否正确使用post__init因为数据类中没有init

ilm*_*nen 5

你的__post_init__函数命名错误。post 和 init 之间应该只有一个下划线,但你有两个。