angry 发表于 2020-11-18 08:44:07

Fish

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 _int_(self):
      self.hungry = True

    def eat(self):
      if self.hungry:
            print('吃货的梦想就是天天有的吃T_T')
            self.hungry = False
      else:
            print('太撑了,吃不下了!')

angry 发表于 2020-11-18 08:45:12

这个到底哪错了,找不出来,报错<bound method Fish.move of <__main__.Fish object at 0x0314BF90>>

Twilight6 发表于 2020-11-18 09:08:14

angry 发表于 2020-11-18 08:45
这个到底哪错了,找不出来,报错



这个不是报错,是因为你调用 move方法时候没有加上括号,返回的是 Fish 类的 move函数方法的内存地址



wnhuiyou 发表于 2020-11-18 09:27:55

你这个有三个地方是错误的,
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()

angry 发表于 2020-11-18 13:27:43

Twilight6 发表于 2020-11-18 09:08
这个不是报错,是因为你调用 move方法时候没有加上括号,返回的是 Fish 类的 move函数方法的内存地址 ...

谢谢

angry 发表于 2020-11-18 13:43:03

wnhuiyou 发表于 2020-11-18 09:27
你这个有三个地方是错误的,
1,class Fish: 和 class Shark(Fish): 下的 _init_是两个下划线 __init__ ...

谢谢大佬
页: [1]
查看完整版本: Fish