父类方法无法调用,求大神解答
代码:import random as rclass Fish:
def _init_(self):
self.x=r.randint(0,10)
self.y=r.randint(0,9)
def move(self):
self.x -=1
print('我的位置是:',self.x,self.y)
def eat(self):
print('我要吃饭啦!')
class Goldfish(Fish):
pass
class Carp(Fish):
pass
class Salmon(Fish):
pass
class Shark(Fish):
def _init_(self):
Fish._init_(self)
执行结果:>>> shark=Shark()
>>> shark.move()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
shark.move()
File "C:\Users\xiaoqian\Desktop\爬虫.py", line 7, in move
self.x -=1
AttributeError: 'Shark' object has no attribute 'x'
>>>
你把Shark里的__init__重写了,没有写x哪里来的x 洋洋痒 发表于 2021-3-25 21:34
你把Shark里的__init__重写了,没有写x哪里来的x
class Shark(Fish):
def _init_(self):
Fish._init_(self)
已经重新调用 Fish._init_(self)的方法了啊。
应该怎么改呢 class Shark(Fish):
def _init_(self):
Fish._init_(self)
super().__init__() 枕思谦 发表于 2021-3-25 21:38
class Shark(Fish):
def _init_(self):
Fish._init_(self)
额,我看错了 去掉self 洋洋痒 发表于 2021-3-25 21:39
class Shark(Fish):
def _init_(self):
Fish._init_(self)
还是不对 本帖最后由 逃兵 于 2021-3-26 09:19 编辑
__init__(self)
两个下划线
import random as r
class Fish:
def __init__(self):
self.x=r.randint(0,10)
self.y=r.randint(0,9)
def move(self):
self.x -=1
print('我的位置是:',self.x,self.y)
def eat(self):
print('我要吃饭啦!')
class Goldfish(Fish):
pass
class Carp(Fish):
pass
class Salmon(Fish):
pass
class Shark(Fish):
def __init__(self):
Fish.__init__(self)
好久没用python记不清了,抱歉
是你的init方法少了个_
是__init__
Fish和Shark都是少了 前后各加个_其他按照你的代码不需要改动就可以了
页:
[1]