Fish
import random as rclass Fish:
def _init_(self):
self.x = r.randint(0, 10)
self.y = r.randint(0, 10)
def move(self):
self.x -= 1
print("我的位置是:", self.x, self.y)
class Goldfish(Fish):
pass
class Carp (Fish):
pass
class Salmon(Fish):
pass
class Shark(Fish):
def _int_(self):
self.hungry = True
def eat(self):
if self.hungry:
print('吃货的梦想就是天天有的吃T_T')
self.hungry = False
else:
print('太撑了,吃不下了!') 这个到底哪错了,找不出来,报错<bound method Fish.move of <__main__.Fish object at 0x0314BF90>> angry 发表于 2020-11-18 08:45
这个到底哪错了,找不出来,报错
这个不是报错,是因为你调用 move方法时候没有加上括号,返回的是 Fish 类的 move函数方法的内存地址
你这个有三个地方是错误的,
1,class Fish: 和 class Shark(Fish): 下的 _init_是两个下划线 __init__
2, 还有 class Shark(Fish): 下的 _int_ 你漏了一个 i ,完整的是 __init__
3,既然你要继承父类,最好把 super 带上
完成的代码是:
import random as r
class Fish:
def __init__(self):
self.x = r.randint(0, 10)
self.y = r.randint(0, 10)
def move(self):
self.x -= 1
print("我的位置是:", self.x, self.y)
class Goldfish(Fish):
pass
class Carp(Fish):
pass
class Salmon(Fish):
pass
class Shark(Fish):
def __init__(self):
super(Shark, self).__init__()
self.hungry = True
def eat(self):
if self.hungry:
print('吃货的梦想就是天天有的吃T_T')
self.hungry = False
else:
print('太撑了,吃不下了!')
test = Shark()
test.eat() Twilight6 发表于 2020-11-18 09:08
这个不是报错,是因为你调用 move方法时候没有加上括号,返回的是 Fish 类的 move函数方法的内存地址 ...
谢谢 wnhuiyou 发表于 2020-11-18 09:27
你这个有三个地方是错误的,
1,class Fish: 和 class Shark(Fish): 下的 _init_是两个下划线 __init__ ...
谢谢大佬
页:
[1]