alexzfdlc 发表于 2021-11-28 15:40:01

super().__init__()报错求助

试用继承的时候出现super().__init__()报错,代码如下

import random as r

class Fish:
    def __init__(self):
      self.x = r.randint(0,10)
      self.y = r.randint(0,10)
      print ('我的位置在%d,%d' % (self.x, self.y))

    def move(self):
      self.x -= 1
      print ('我的位置在%d,%d' % (self.x, self.y))

class Shark(Fish):
    def __init__(self):
      super().__init__()
      print("我超凶的!")

shark = Shark()


报错信息;

Traceback (most recent call last):
File "/Users/guoxinwei/Desktop/Python Practice/P39-Inherit.py", line 22, in <module>
    shark = Shark()
File "/Users/guoxinwei/Desktop/Python Practice/P39-Inherit.py", line 19, in __init__
    super().__init__()
TypeError: super() takes at least 1 argument (0 given)

上网搜了一下说是python2才会出的问题,但是我是python3.9.9为什么也会报这个错

麻烦大神给看下是啥原因?

玲珑玉 发表于 2021-11-28 15:41:37

Super()至少接受1个参数(给定0)

玲珑玉 发表于 2021-11-28 15:42:23

应该super(Shark).__init__()

逃兵 发表于 2021-11-28 15:56:15

代码运行没有问题

我的位置在6,2
我超凶的!

alexzfdlc 发表于 2021-11-28 16:13:49

试了一下,在IDLE里运行没有问题,在vscode里运行就会报错

hrpzcf 发表于 2021-11-28 16:20:55

你用什么系统的,有的系统默认带有python2,看看vscode左下角用的是哪个版本的python,点进去切换就行了。

alexzfdlc 发表于 2021-11-28 17:51:39

Mac OS系统的,vscode左下角显示是3.9.9版本{:10_266:}

alexzfdlc 发表于 2021-11-28 20:44:08

切换到pycharm上可以了,不纠结了
页: [1]
查看完整版本: super().__init__()报错求助