鱼C论坛

 找回密码
 立即注册
查看: 844|回复: 14

那位大佬给解释一下为什么报错!!!坐等

[复制链接]
发表于 2018-12-16 20:35:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
     父类
class Name():
    sum = 0
    def __init__(self,name,age):
        self.name = name
        self.age = age
         


          子类
     from K1 import Name
class Abc(Name):
    def __init__(self,school,name,age):
        self.school = school
        super(Name,self).__init__(name,age)



a = Abc("从杰爸","王从杰","从杰")
print(a.name)
print(a.age)
print(a.school)


    出错
object.__init__() takes no arguments
  File "E:\1234\name\t2\k2.py", line 5, in __init__
    super(Name,self).__init__(name,age)
  File "E:\1234\name\t2\k2.py", line 9, in <module>
    a = Abc("从杰爸","王从杰","从杰")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-16 20:44:57 | 显示全部楼层
比Name还super的object是没有init的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 20:52:59 | 显示全部楼层
塔利班 发表于 2018-12-16 20:44
比Name还super的object是没有init的

还是没看懂为什么会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 20:54:58 | 显示全部楼层
congjieba 发表于 2018-12-16 20:52
还是没看懂为什么会报错

父类找爹的问题,Name的父类是object
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 20:56:12 | 显示全部楼层
super().__init__(name,age)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 21:02:03 | 显示全部楼层
塔利班 发表于 2018-12-16 20:54
父类找爹的问题,Name的父类是object

感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 21:02:48 | 显示全部楼层
冬雪雪冬 发表于 2018-12-16 20:56
super().__init__(name,age)

为什么要把括号里面的东西去掉代码就可以正常执行了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 21:05:06 | 显示全部楼层
congjieba 发表于 2018-12-16 21:02
为什么要把括号里面的东西去掉代码就可以正常执行了啊

调用父类super不需要参数:object.__init__() takes no arguments
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 21:06:45 | 显示全部楼层
冬雪雪冬 发表于 2018-12-16 21:05
调用父类super不需要参数:object.__init__() takes no arguments

from t5 import Human
class Stundet(Human):
    def __init__(self,school,name,age):
        self.school =school
        #Human.__init__(self,name,age)
        super(Stundet,self).__init__(name,age)


    def do_homework(self):
        super(Stundet,self).do_homework()
        print("都是从杰爸")





student1 = Stundet("狗窝","王从杰",18)
print(student1.name)
print(student1.age)
  

那为什么这行代码可以执行昂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 21:11:35 | 显示全部楼层
congjieba 发表于 2018-12-16 21:06
from t5 import Human
class Stundet(Human):
    def __init__(self,school,name,age):

把你的模块文件的内容写在主程序中,否则我无法测试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 21:17:09 | 显示全部楼层
冬雪雪冬 发表于 2018-12-16 21:11
把你的模块文件的内容写在主程序中,否则我无法测试

主程序是什么啊大哥   见谅哈新手啥也不懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 21:22:02 | 显示全部楼层
congjieba 发表于 2018-12-16 21:17
主程序是什么啊大哥   见谅哈新手啥也不懂

class Stundet(Human):
........
就是你的主程序,但t5是什么我就不知道了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 21:26:40 | 显示全部楼层
冬雪雪冬 发表于 2018-12-16 21:22
class Stundet(Human):
........
就是你的主程序,但t5是什么我就不知道了。

    父类
class Human():
    sum = 0
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def get_name(self):
        print(self.name)
   

    def do_homework(self):
        print("这是从杰爸")

    子类
from t5 import Human
class Stundet(Human):
    def __init__(self,school,name,age):
        self.school =school
        #Human.__init__(self,name,age)
        super(Stundet,self).__init__(name,age)


    def do_homework(self):
        super(Stundet,self).do_homework()
        print("都是从杰爸")





student1 = Stundet("狗窝","王从杰",18)
print(student1.name)
print(student1.age)



大哥您费神 上面是我的完整代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 21:45:26 | 显示全部楼层
1楼的程序是super(Name,self).__init__(name,age)
即参数是父类的名字,
而13楼super(Stundet,self).__init__(name,age)
参数是自身的名字。
应该说差别就在这里了,不过一般些super是不需要带参数的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 21:30:27 | 显示全部楼层
冬雪雪冬 发表于 2018-12-16 21:45
1楼的程序是super(Name,self).__init__(name,age)
即参数是父类的名字,
而13楼super(Stundet,self).__in ...

原来是这样  感谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-12 10:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表