You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问继承类的关键字参数默认值?以seaborn.JointGrid为例

解决Seaborn JointGrid子类无法访问初始化变量的问题

我明白你在创建CustomJointGrid子类时遇到的困扰——父类JointGrid的__init__方法里定义的size、ratio、space这些参数都是局部变量,没有被绑定为实例属性,所以子类没法直接访问它们。

这里有个直接且可靠的解决办法:在子类的__init__中显式接收这些参数,先把它们赋值给子类实例的属性,再传递给父类的初始化方法。代码示例如下:

import seaborn

class CustomJointGrid(seaborn.JointGrid):
    def __init__(self, *args, size=6, ratio=5, space=.2, **kwargs):
        # 将需要的参数保存为子类实例属性
        self.size = size
        self.ratio = ratio
        self.space = space
        # 调用父类的初始化方法,传递所有参数
        super().__init__(*args, size=size, ratio=ratio, space=space, **kwargs)

这样一来,你后续在子类的其他方法里,就可以通过self.size、self.ratio、self.space直接访问这些值了。

如果之后还需要访问__init__里的其他参数(比如dropna),都可以用同样的逻辑:先在子类__init__的参数列表里声明,保存为实例属性,再传递给父类。

另外补充一点:如果你不想显式声明这些参数,也可以尝试从JointGrid初始化后生成的实例属性反向推导(比如从self.fig的尺寸或者轴的布局参数里找线索),但这种方法不太可靠——因为Seaborn的内部实现可能随版本更新变化,显式保存参数的方式会更稳定。

内容的提问来源于stack exchange,提问作者Roald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:39:11