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

Python类方法链式调用实现求助:Shape类代码修正

修正后的Shape类实现

你的代码无法实现链式调用的核心问题是set方法没有返回实例本身,另外还有一处多余的属性赋值。下面是修正后的代码:

class Shape:
    def __init__(self, colour=None):
        self._colour = colour  # 私有颜色属性,支持默认值None
        
    def colour(self):
        print(self._colour)
        return self  # 可选:如果需要colour后继续链式调用,添加返回self
        
    def set(self, new_colour):
        self._colour = new_colour
        return self  # 返回实例本身,实现链式调用

关键修正点:

  • set方法末尾添加return self:每次调用set后都会返回当前Shape实例,这样就能接着调用其他方法(比如colour或另一个set),实现链式调用。
  • 移除set方法里多余的self.new_colour = new_colour:我们只需要维护私有属性_colour即可,不需要额外的公共属性。

测试验证:

s = Shape()
s.set('Red').colour()
# 输出: Red

s.set('Yellow').set('Blue').colour()
# 输出: Blue

(注:你提供的示例中第二个输出写的是Yellow,这应该是笔误,连续调用两次set后,最后一次设置的Blue才会是当前颜色)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:01:03