为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError: __init__() 采用 3 个位置参数,但给出了 5 个

TypeError: __init__() 采用 3 个位置参数,但给出了 5 个

芜湖不芜 2023-03-16 15:32:46
试图从超类 BasicToken继承 到子类 StableCoin的值supply未被子类继承:StableCoin有人可以解释为什么吗?class BasicToken:    asset_class = "Crypto-Currency"    def __init__(self, symbol):        self.symbol = symbolclass StableCoin(BasicToken):    def __init__(self, color, supply):        self.color = color        self.supply = supplyicon = BasicToken('icx')icxStable = StableCoin('DMM', ['Blue', 'White'])print('Icon Symbol: '+ icon.symbol)print('IcxStable Symbol: '+ icxStable.symbol)的Error:Traceback (most recent call last):  File "C:/Users/Samson/Documents/PythonCourse-master/Section_04/assignment_04.py", line 30, in <module>    print('IcxStable Symbol: '+ icxStable.symbol)AttributeError: 'StableCoin' object has no attribute 'symbol'
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超5个赞

将以下内容添加到 StableCoin 的 init


class StableCoin(BasicToken):

    def __init__(self, symbol, color, supply):

        super(StableCoin, self).__init__(symbol)

        self.color = color

        self.supply = supply

如果您使用的是 PY3,调用 super 会更容易super().__init__(symbol)。虽然上面也有效。


来到你的方法,你的理解似乎有点不正确。icon 是 BasicToken 的一个实例,icxStable 是一个单独的对象,它是 StableCoin 的一个实例。他们没有关系。


例如,假设我们有一个属性为 age 的 Mammal 类,以及另一个具有附加属性“height”的 Human(Mammal) 类,这就像构造然后blue_whale_whaley=Mammal(age=4)理解chuck_norris=Human(height=180)chuck_norris.age 是 blue_whale.age,它不是因为它们是 2不同的对象。正确构建 chuck_norris 将是chuck_norris=Human(age=50, height=180)


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信