精华内容
下载资源
问答
  • print("******多继承使用super().__init__ 发生的状态******")class Parent(object):def __init__(self, name, *args, **kwargs): # 为避免多继承报错,使用不定长参数,接受参数print('parent的init开始被调用')...

    print("******多继承使用super().__init__ 发生的状态******")

    class Parent(object):

    def __init__(self, name, *args, **kwargs): # 为避免多继承报错,使用不定长参数,接受参数

    print('parent的init开始被调用')

    self.name = name

    print('parent的init结束被调用')

    class Son1(Parent):

    def __init__(self, name, age, *args, **kwargs): # 为避免多继承报错,使用不定长参数,接受参数

    print('Son1的init开始被调用')

    self.age = age

    super().__init__(name, *args, **kwargs) # 为避免多继承报错,使用不定长参数,接受参数

    print('Son1的init结束被调用')

    class Son2(Parent):

    def __init__(self, name, gender, *args, **kwargs): # 为避免多继承报错,使用不定长参数,接受参数

    print('Son2的init开始被调用')

    self.gender = gender

    super().__init__(name, *args, **kwargs) # 为避免多继承报错,使用不定长参数,接受参数

    print('Son2的init结束被调用')

    class Grandson(Son1, Son2):

    def __init__(self, name, age, gender):

    print('Grandson的init开始被调用')

    # 多继承时,相对于使用类名.__init__方法,要把每个父类全部写一遍

    # 而super只用一句话,执行了全部父类的方法,这也是为何多继承需要全部传参的一个原因

    super(Grandson, self).__init__(name, age, gender)

    # super().__init__(name, age, gender)

    print('Grandson的init结束被调用')

    print(Grandson.__mro__)

    gs = Grandson('grandson', 12, '男')

    print('姓名:', gs.name)

    print('年龄:', gs.age)

    print('性别:', gs.gender)

    print("******多继承使用super().__init__ 发生的状态******\n\n")

    ​ 输出:

    ******多继承使用super().__init__ 发生的状态******

    (, , , , )

    Grandson的init开始被调用

    Son1的init开始被调用

    Son2的init开始被调用

    parent的init开始被调用

    parent的init结束被调用

    Son2的init结束被调用

    Son1的init结束被调用

    Grandson的init结束被调用

    姓名: grandson

    年龄: 12

    性别: 男

    ******多继承使用super().__init__ 发生的状态******

    展开全文
  • pycharm报错super().__init__(*args, **kwargs) TypeError: __init__() got an unexpected keyword argument 'context_type' ERROR basehttp 161 "GET /image_codes/fb436df0-88c5-4b7a-ac2c-252cc82e54fd/ ...

    运行pycharm时报错

    pycharm报错super().__init__(*args, **kwargs) TypeError: __init__() got an unexpected keyword argument 'context_type' ERROR basehttp 161 "GET /image_codes/fb436df0-88c5-4b7a-ac2c-252cc82e54fd/ HTTP/1.1" 500 90885

    根据提示找到context_type,看是不是写错了,修改在运行就可以了

    展开全文
  • super().__init__()方法

    2021-03-02 15:38:27
    super().init() 的作用就是继承父类的init,并且可以修改,如果不加这句话,那么就是无法继承。除非子类不定义__init__()。 """普通情况""" class OldboyPeople: school='oldboy' def __init__(self,name

    super(),会得到一个特殊的对象,该对象就是专门用来
    访问父类中的属性的(严格按照继承的关系)

    super().init(),
    这里__init__()括号中不需要传参self, 有其他参数传其他参数即可。

    super().init() 的作用就是继承父类的init,并且可以修改,如果不加这句话,那么就是无法继承。除非子类不定义__init__()。

    """普通情况"""
    class OldboyPeople:
        school='oldboy'
        def __init__(self,name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
    
    class OldboyStudent(OldboyPeople):
        def __init__(self,name,age,sex,stu_id): 
         self.stu_id=stu_id
        def choose_course(self):
         pass
    obj2 = MyClass2("chen",12,1,"123") # 虽然接收了这些参数,但是并没有给对象添加属性
    # print obj2.name # 会报错,子类的类对象没有name属性
    print(obj2.__dict__) # {"stu_id":"123"}
    # 如果把子类的__init__方法注释掉,实例化传参obj2 = MyClass2("chen",12,1),就会调用父类的__init__方法,也就是说通常情况下,父类的__init__方法和子类的__init__方法只能用一个
    
    
    """使用super().__init__()后"""
    class OldboyPeople:
        school='oldboy'
        def __init__(self,name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
    
    class OldboyStudent(OldboyPeople):
        def __init__(self,name,age,sex,stu_id):
            super().__init__(name,age,sex)
            self.stu_id=stu_id
    
        def choose_course(self):
            print('%s is choosing course'%self.name)
            # return 'true'
            # 函数自带返回值none,如果把return 'true'这一行注释的话,
            # 那么打印的print(stu1.choose_course())这个结果就会是:tank is choosing course
            # 并且还会打印出有None。
    
    stu1=OldboyStudent('tank',19,'male',1)
    print(stu1.__dict__)
    print(stu1.choose_course())
    
    上述程序输出的打印结果如下所示:
    {'name': 'tank', 'age': 19, 'sex': 'male', 'stu_id': 1}
    tank is choosing course
    None
    
    展开全文
  • 【笔记】super(XXX,self).init( ) 的含义 解惑(一) ----- super(XXX, self).init()到底是代表什么含义 Python super() 函数 Python super() 函数(知乎) python—方法解析顺序MRO(Method Resolu

    问题阐述

    import torch
    from torch import nn
    
    # 搭建神经网络
    class Net(nn.Module):
        def __init__(self):
            super(Net, self).__init__()
            self.model = nn.Sequential(
                nn.Conv2d(3, 32, 5, 1, 2),
                nn.MaxPool2d(2),
                nn.Conv2d(32, 32, 5, 1, 2),
                nn.MaxPool2d(2),
                nn.Conv2d(32, 64, 5, 1, 2),
                nn.MaxPool2d(2),
                nn.Flatten(),
                nn.Linear(64*4*4, 64),
                nn.Linear(64, 10)
            )
    
        def forward(self, x):
            x = self.model(x)
            return x
    

    在自己搭建的网络Net中,经常会见到构造器__init__()中会有super(Net, self).init()这么一句话,意思是自己搭建的网络Net会继承nn.Module:

        def __init__(self):
            super(Net, self).__init__()
    

    可是按照之前学习的继承语法,比如B继承A,应该是如下语句:

    class A:
    	def __init__(self):
    		pass
    
    class B(A):
    	def __init__(self):
    		super().__init__()
    

    为什么pytorch中,神经网络的搭建要这么写呢

    我的理解

    读完这篇文章self参数 - __ init__ ()方法 super(Net, self).init(),大概意思是:

    super有个内核叫做mro,是method resolution order的缩写,作用是,mro会记录一个父类列表,告诉self实例所属的这个类在继承过程中,究竟调用哪一个父类的__init__()方法来初始化,免得父类直接相互有继承关系而造成__init__()方法交叉调用的混乱

    super(type, obj)的用法:

    class Son(Father, Father2):
           def __init__(self):
                  super(Son, self).__init__()
    

    mro列表=[Son, Father1, Father2, Base],super会从mro中,找到传入它的第一个参数’Son’,并第一个参数’Son’右边的一个类开始,依次寻找__init__函数。这里是从Father1开始寻找,一旦找到,就把找到的__init__函数绑定到self对象,并返回。

    如果想继承中调用Father2的__init__()方法,就应该写成:

    class Son(Father1, Father2):
           def __init__(self):
                  super(Father1, self).__init__()
    

    相关文章

    Python super() 函数
    super(Net, self).init()
    super(Net,self).init() 的含义
    【笔记】super(XXX,self).init( ) 的含义
    解惑(一) ----- super(XXX, self).init()到底是代表什么含义
    Python super() 函数(知乎)
    python—方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法>

    展开全文
  • 在使用tensorFlow2搭建神经网络模型的时候,除了Sequential的方法,还有就是自己写模型class,然后初始化。自己写模型类的优势就是可以自定义层与层之间的连接关系,自定义... super(IrisModel, self).__init__() s
  • 好文不应该被埋没,应该被更多的人所熟知!!! ...相信大家在很多场合特别是写神经网络的代码的时候都看到过下面的这种代码: import torch import torch.nn as nn ... def __init__(self): super(Net
  • 报错:AttributeError: cannot assign module before Module.__init__() call 错误代码: class ModuleDict(nn.Module): def __init__(self, choice, act): self.choice=choice self.act = act self.choices =...
  • AttributeError: cannot assign module before Module.__init__() call 出现这个错误的原因非常简单,调用了自定义的类,但是在自定义的类的__init__函数下面没有写super( XXX, self ).init() 错误案例 正确案例 ...
  • super().init()含义(单继承,即只有一个父类) 测试一: 在没有super(A, self).init()时调用A的父类Root的属性和方法(方法里不对Root数据进行二次操作)。 class Root(object): def __init__(self): self.x = "这...
  • issue: 在把模型初始化并复制给变量的时候, 报错: cannot assign module before Module.__init__() call solution: 在被初始化的模型中没有调用super().__init__().
  • super当其放在__new__方法中时super(类名,cls).new(cls),第一个括弧中的内容可以省略,但是的二个cls不能省略,否则报错。 class Person(): def __init__(self,name,age): print('__init__被调用') self.name=...
  • 错误展示 AttributeError: cannot assign module before Module.__init__() call 报错解析 【error】在初始化函数调用前不能获得分配模块 解决方案 ...super(TextClassfer, self).__init__() ...
  • 报错: File "/home/xinying/... super().__init__(**kwds) TypeError: object.__init__() takes exactly one argument (the instance to initialize) 报错原因: 这里__init__()不能加任何参数,否则会报错。 因为
  • super().init(self,**kwargs) 一直弄不明白咋回事,感觉不知道是自己的脑子进水了,还是设计者的思维模式很外星化,始终无法理解,只能发挥我们医务工作者的特点,强记了,以后慢慢理解。为了便于强记,写了一代码,...
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2.3、如果子类定义了自己的初始化函数,显示调用父类,子类和父类的属性都会被初始化 class Child(Parent): def init(self): print(“call init from Child class”) super...
  • 最近有同学问我关于Python类中的super()和__init__()共同点和不同点的问题, 我今天把它们两个的异同点总结了一下,希望可以帮助遇到同样困惑的同学。单继承时super()和__init__()实现的功能是类似的classBase...
  • 仅供学习,转载请注明出处单独调用父类的方法需求:...那么先写一个胖子老板的父类,执行一下:# coding=utf-8class FatFather(object):def __init__(self,name):print('FatFather的init开始被调用')self.name = nam...
  • line 33, in new_application instance = application(scope) File "/home/nakmak98/source/Menu/pycharm_venv/lib/python3.8/site-packages/channels/generic/websocket.py", line 23, in __init__ super().__init_...
  • TypeError: __init__() got an unexpected keyword argument 'n_iterations' 原代码: model = word2vec.Word2Vec(sentences=texts, size=200, window=3, workers=2) 解决方法 \quad \quad根据官方手册将size改为...
  • Property 'self.xxx' not initialized at super.init call 大概意思是在调用父类init方法前,需要给属性赋值。 报错代码 required init(leftController: UIViewController?, centerController: UIViewController) {...
  • super(Extractor, self).__init__() TypeError: super(type, obj): obj must be an instance or subtype of type 脚本修改的地方,肯定没有问题,还是出现如上报错,很是奇怪。 解决办法:关掉python编辑器,重启。...
  • declaration] power_enter_super_calc(&pm_info, &extended_standby_para_info, ^ drivers/soc/allwinner/pm/standby/main.c:144:3: warning: implicit declaration of function 'standby_twi_init_losc' [-...
  • 实验代码展示: import torch import torch.nn as nn torch.manual_seed(seed=20200910) class Model(torch.nn.Module): def __init__(self): super(Model,self).__init__() self.conv1=torch.nn.Sequential( # 输入...
  • 描述问题以前以为自己知道super怎么用,但是看到下面的代码,却是没有搞懂其作用原理下面的代码,神奇地做到了"属性设置不能为int" (实现在父类里面)查阅了super的用法,摘抄如下super(type, obj) -> bound super ...
  • 详解Python中的__new__、__init__、__call__三个特殊方法 <section> <article class="clearfix"> <p>__new__: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,...
  • 代码实验举例: import torch import torch.nn as nn class Model4CXQ(nn.Module): def __init__(self): super(Model4CXQ, self).__init__() # super().__init__() self.attribute4cxq = nn.Parameter(torch.tensor...
  • 导读热词对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!最近有同学问我关于...单继承时super()和__init__()实现的功能是类似的# @param python类中super()和__init__...
  • : >>> print(param.size()) 代码实验展示: import torch import torch.nn as nn torch.manual_seed(seed=20200910) class Model(torch.nn.Module): def __init__(self): super(Model,self).__init__() self.conv1=...
  • 一 isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类 cls 的对象1 classFoo(object):2 pass34 obj =Foo()56 isinstance(obj, Foo)issubclass(sub, super)检查sub类是否是 super ...
  • 报错NoSuchMethodException: org.apache.hadoop.io.ArrayWritable. 因为ArrayWritable没有无参构造方法,需要我们自定义一个类继承它 import org.apache.hadoop.io.ArrayWritable; import org.apache

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,414
精华内容 17,765
关键字:

super().__init__()报错