您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python,重写继承的类方法

Python,重写继承的类方法

从C ++的角度来看,这里可能存在两个误解。

首先,具有相同名称和不同签名的方法不会像C ++中那样重载它。如果您的Background对象之一试图不带任何参数调用buildField,则不会调用Field的原始版本-它已被完全隐藏。

第二个问题是,如果超类中定义的方法调用buildField,则将调用子类版本。在python中, 所有 方法都是动态绑定的,就像C ++virtual方法一样。

__init__预期Field将处理具有不带参数的buildField方法的对象。您将该方法与具有带有一个参数的buildField方法的对象一起使用。

问题super是它不会更改对象的类型,因此您不应更改超类的方法可能调用的任何方法的签名。

python 2022/1/1 18:36:58 有339人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶