Pandera SchemaModel未继承父类Config?是设计如此还是操作有误?
Pandera SchemaModel子类未继承父类Config的问题
这是Pandera的设计行为,子类默认不会自动继承父类的Config内部类。
解决方法
你需要手动让子类的Config类继承父类的Config,这样既能继承父类的配置项,也能灵活添加或覆盖子类自己的配置:
from pandera.typing import Series import pandera as pa class Model1(pa.SchemaModel): col1: Series[int] class Config: unique=['col1'] class Model2(Model1): col2: Series[str] # 显式继承父类Config class Config(Model1.Config): # 可选:如果需要扩展配置,比如新增unique字段 # unique = Model1.Config.unique + ['col2'] pass
这样Model2.Config.unique就会等于['col1'],完全符合你的预期。
要是不想重新定义Config类,也可以直接复用父类的配置值,但这种方式不如显式继承清晰:
class Model2(Model1): col2: Series[str] class Config: unique = Model1.Config.unique
补充说明
Pandera这么设计是为了让每个SchemaModel的配置保持独立,避免意外继承父类配置引发的行为冲突,所以显式继承父类Config是官方推荐的做法。
内容的提问来源于stack exchange,提问作者Kyle Hansen
相关产品推荐
相关产品推荐

