精华内容
下载资源
问答
  • 继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题? 2015-04-04源自:python进阶 5-17642 浏览2 回答 最佳回答 2015-05-05 1 super(Student,self).__init...

    继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题?

    2015-04-04源自:python进阶 5-17642 浏览2 回答

    最佳回答

    2015-05-05
    1
    super(Student,self).__init__()

    这是对继承自父类的属性进行初始化。而且是用父类的初始化方法来初始化继承的属性。

    也就是说,子类继承了父类的所有属性和方法,父类属性自然会用父类方法来进行初始化。

    当然,如果初始化的逻辑与父类的不同,不使用父类的方法,自己重新初始化也是可以的。

     回复  9
     

    a412739861 (提问者)

    谢谢,大致了解清楚了~

    #12015-05-05 回复
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
     
    class Person(object):
        def __init__(self,name,gender,age):
            self.name = name
            self.gender = gender
            self.age = age
     
    class Student(Person):
        def __init__(self,name,gender,age,school,score):
            #super(Student,self).__init__(name,gender,age)
            self.name = name.upper()  
            self.gender = gender.upper()
            self.school = school
            self.score = score
     
    = Student('Alice','female',18,'Middle school',87)
    print s.school
    print s.name

    例如这样,父类对name和gender的初始化只是简单的赋值,

    但子类要求字母全部大写。

    转载于:https://www.cnblogs.com/jfdwd/p/11077137.html

    展开全文
  • 初始化块与静态初始化

    千次阅读 2017-06-13 17:03:29
    1、初始化块(构造代码块): (1)作用:给对象进行初始化。对象一建立就运行,且优先于构造函数的运行。 (2)与构造函数的区别:初始化块给所有对象进行统一初始化,构造函数只给对应对象初始化。是Java在创建...

    1、初始化块(构造代码块):
    (1)作用:给对象进行初始化。对象一建立就运行,且优先于构造函数的运行
    (2)与构造函数的区别:初始化块给所有对象进行统一初始化,构造函数只给对应对象初始化。是Java在创建对象时隐示执行的,在Javac编译后初始化块内代码会被还原到构造器里,而且在最前面。先执行父类初始化块后子类的。
    (3)应用:不接受参数,将所有构造函数共性的东西定义在构造代码块中。

    3Java创建对象过程的初始化顺序:先初始化块或者声明时赋值>构造器中的初始化。创建过程包括类加载、分配内存、并行处理、初始化、对象设置、执行init方法。

     

    public class A{
    { a=9;}
    int a=6;
    public st...main(...){
       print....(new A().a)
    }
    }
    输出6,即创建对象时首先统一为成员们分配内存(类已加载),然后初始化块与声明后的赋值执行顺序看代码顺序

    2static静态初始化块:
    (1)作用:给类进行初始化。随着类的加载而执行,且只执行一次
    (2)与构造代码块的区别:
    1)构造代码块用于初始化对象,每创建一个对象就会被执行一次;静态代码块用于初始化类,随着类的加载而执行,都只执行一次
    2静态代码块优先于构造代码块的执行

    4、顺序

    JVM在装载类时)先装载类的静态成员,再执行静态初始化块(同样,当一个类有继承自某类时,则会先装载该父类,那么,父类的装载或执行顺序,也都如句子所述)。

    (在创建类的实例时)先执行实例初始化块,再执行构造器;但对于一棵继承树中,会先调用父类的构造方法,那么其执行顺序也如句子所述。

    5例子:
    Class A{ int n = 0;}那么你创建对象 A a = new A();之后就可以使用a.n属性

    Class A{  {  int a= 0;  }  } 放在块里面n就不是A的成员,就不能使用a.n属性前者把n作为对象的成员;后者只是实例化一个对象时声明一个局部变量a。有本质区别。

    public class Test {
    static {
    System.out.println("我是静态块");
    }
    }
    当创建Test 类的一个对象的时候,比如new Test() ,是这样,首先是类加载,然后才能new对象,静态块在类加载的时候就执行了,这就说明静态块在new对象之前就会执行,而且一个类在第一次被使用的时候 会被加载,然后在整个应用程序的生命周期当中不会再次被加载了,就加载这一次,所以这就说明,静态块就执行一次,不会执行第二遍!

     

    展开全文
  • Servlet什么时候初始化

    千次阅读 2017-12-02 09:32:08
    Servlet什么时候初始化? 最近面试遇到了这样一道题,面试官问Servlet什么时候初始化?回答是:在web容器启动的时 候初始化,然后他笑了笑,我就一脸懵逼了。回来之后查了查资料,明白当时的回答是多么的傻! ...

    Servlet什么时候初始化?

    最近面试遇到了这样一道题,面试官问Servlet什么时候初始化?回答是:在web容器启动的时

    候初始化,然后他笑了笑,我就一脸懵逼了。回来之后查了查资料,明白当时的回答是多么的傻!

    以在这里总结大家之言,以提供给更多不解之人与之帮助,希望有所帮助!

    一直一来都认为Servlet是在web容器启动的时候初始化,但仔细想想有很多地方可以推究。如

    果有一万个servlet,那服务器启动的时候就要实例化一万个类,那就是要在内存(堆中)中创建一万

    个对象,一次创建这么多对象,对于内存(堆中)而言负载量相当的大,有可能就会出现《内存溢出》

    的异常,所以后来想想,应该是在请求的时候才去实例化的吧,这样的话,对于容器而言不用启动的时

    候就加载那么多东西,感觉这就是请求时才加载的根本原因吧,纯属个人见解(以上是转自http://bl

    og.csdn.net/wwhmj/article/details/51647063),希望各位有不同见解的

    提出来,大家一起讨论。

    如果没有设置loadOnStartup,则第一次请求的时候实例化
    分三种情况:
    loadOnStartup < 0 
    即负数的情况下,web容器启动的时候不做实例化处理,servlet首次被调用时做实例化
    这种情况和没有设置loadOnStartup是一样的。
    loadOnStartup > 0
    web容器启动的时候做实例化处理,顺序是由小到大,正整数小的先被实例化
    loadOnStartup = 0
    web容器启动的时候做实例化处理,相当于是最大整数,因此web容器启动时,最后被实例化


    配置 web.xml 

    配置一个普通的servlet 

      <servlet> 

        <servlet-name>AServlet</servlet-name> 

        <servlet-class>com.servlet.AServlet</servlet-class> 

        <load-on-startup>4</load-on-startup><!--加这个标签,tomcat启动时会自动加载

    指定的servlet     值是servlet的加载顺序!!!   数字越小代表加载的优先级越高--> 

      </servlet> 

    展开全文
  • 随机初始化(Random+Initialization) 当你训练神经网络时,权重随机初始化是很重要的。 对于逻辑回归,把权重初始化为0当然也是可以的。 但是对于一个神经网络,如果你把权重或者参数都初始化为0,那么梯度下降将...

    随机初始化(Random+Initialization)

    当你训练神经网络时,权重随机初始化是很重要的。

    对于逻辑回归,把权重初始化为0当然也是可以的。

    但是对于一个神经网络,如果你把权重或者参数都初始化为0,那么梯度下降将不会起作用。

    让我们看看这是为什么?

    有两个输入特征,n([0])=2,2个隐藏层单元n([1])就等于2。 因此与一个隐藏层相关的矩阵,或者说W([1])是2*2的矩阵,假设把它初始化为0的2*2矩阵,b([1])也等于 [0 0]^T,把偏置项b初始化为0是合理的,但是把w初始化为0就有问题了。

    那这个问题如果按照这样初始化的话,你总是会发现a_1^([1]) 和 a_2([1])相等,这个激活单元和这个激活单元就会一样。因为两个隐含单元计算同样的函数,当你做反向传播计算时,这会导致dz_1([1]) 和 dz_2([1])也会一样,对称这些隐含单元会初始化得一样,这样输出的权值也会一模一样,由此W([2])等于[0 0];

    在这里插入图片描述
    如果你这样初始化这个神经网络,那么这两个隐含单元就会完全一样,因此他们完全对称,也就意味着计算同样的函数,并且肯定的是最终经过每次训练的迭代,这两个隐含单元仍然是同一个函数,令人困惑。

    dW会是一个这样的矩阵,每一行有同样的值因此我们做权重更新

    把权重W([1])⟹W([1])-adW每次迭代后的W^([1]),第一行等于第二行。

    由此可以推导,如果你把权重都初始化为0,

    那么由于隐含单元开始计算同一个函数,所有的隐含单元就会对输出单元有同样的影响。

    一次迭代后同样的表达式结果仍然是相同的,即隐含单元仍是对称的。

    通过推导,两次、三次、无论多少次迭代,不管你训练网络多长时间,隐含单元仍然计算的是同样的函数。

    因此这种情况下超过1个隐含单元也没什么意义,因为他们计算同样的东西。当然更大的网络,比如你有3个特征,还有相当多的隐含单元。

    如果你要初始化成0,由于所有的隐含单元都是对称的,无论你运行梯度下降多久,他们一直计算同样的函数。这没有任何帮助,因为你想要两个不同的隐含单元计算不同的函数,

    这个问题的解决方法就是随机初始化参数。

    你应该这么做:

    把W^([1])设为np.random.randn(2,2)(生成高斯分布),通常再乘上一个小的数,比如0.01,这样把它初始化为很小的随机数。

    然后b没有这个对称的问题(叫做symmetry breaking problem),所以可以把 b 初始化为0,因为只要随机初始化W你就有不同的隐含单元计算不同的东西,因此不会有symmetry breaking问题了。相似的,对于W([2])你可以随机初始化,b([2])可以初始化为0。

    W^[1] =np.random.randn(2,2) * 0.01 ,
    b^([1])=np.zeros((2,1)) 
    W^([2])=np.random.randn(2,2) * 0.01 , b^([2])=0
    

    你也许会疑惑,这个常数从哪里来,为什么是0.01,而不是100或者1000。

    我们通常倾向于初始化为很小的随机数。因为如果你用tanh或者sigmoid激活函数,或者说只在输出层有一个Sigmoid,如果(数值)波动太大,

    当你计算激活值时z([1])=W([1]) x+b^([1]) , a([1])=σ(z([1]))=g^([1]) (z^([1]))

    如果W很大,z就会很大。z的一些值a就会很大或者很小,因此这种情况下你很可能停在tanh/sigmoid函数的平坦的地方(见下图),

    在这里插入图片描述
    这些地方梯度很小也就意味着梯度下降会很慢,因此学习也就很慢。

    回顾一下:

    如果w很大,那么你很可能最终停在(甚至在训练刚刚开始的时候)z很大的值,这会造成tanh/Sigmoid激活函数饱和在龟速的学习上,

    如果你没有sigmoid/tanh激活函数在你整个的神经网络里,就不成问题。

    但如果你做二分类并且你的输出单元是Sigmoid函数,那么你不会想让初始参数太大,因此这就是为什么乘上0.01或者其他一些小数是合理的尝试。对于w^([2])一样,就是np.random.randn((1,2)),我猜会是乘以0.01。

    事实上有时有比0.01更好的常数,当你训练一个只有一层隐藏层的网络时(相对浅的神经网络,没有太多的隐藏层),设为0.01可能也可以。

    但当你训练一个非常非常深的神经网络,你可能会选择一个不同于的常数而不是0.01。

    那么如何设置常数呢?这个等下一章深度学习网络时再做进一步说明!

    点击关注,持续更新中……

    展开全文
  • Html 页面初始化加载

    千次阅读 2019-08-27 17:07:16
    $(document).ready(function(){ trace("初始化方法进入"); }); $(function(){ trace("初始化方法进入二"); }); window.onload=function(){ //要初始化东西 }
  • java接口的初始化

    千次阅读 2018-10-06 12:04:27
    真正不同的地方在于第三点,类的初始化执行之前要求父类全部都初始化完成了,但接口的初始化貌似对父接口的初始化不怎么感冒。 也就是说,子接口初始化的时候并不要求其父接口也完成初始化,只有在真正使用到父接口...
  • 其次,初始化CSS样式主要是提高编码质量,如果不初始化整个页面,做完的东西是会很糟糕,重复的CSS样式很多。去掉标签的默认样式如:margin和padding,其他浏览器默认解析字体大小,字体设置。 解答完毕,感谢各位!...
  • C++初始化列表

    2016-04-17 00:10:35
    问已经有了第一种初始化方式为什么还要使用初始化列表 哪些东西必须放在初始化列表中构造函数的执行阶段:1. 初始化阶段:所有类类型的成员都会在初始化阶段初始化,即使该成员没有出现在构造函数的初始化列表中2. ...
  • 拷贝初始化与直接初始化的区别

    千次阅读 2018-09-21 20:23:12
    copy-initialization vs direct-...指用一个对象初始化另外一个对象: 在下面这6种情况下发生: T object = other; //(1) 当一个非引用类型T的具名变量通过 '=' 被一个表达式初始化时 T object = {other}; //(...
  • 我先简单说一下初始化式,可能有人已经忘了什么是构造函数的初始化式。其实初始化式就是一个以冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟着一个放在圆括号里的初始化式。
  • C语言各种变量的初始化

    万次阅读 多人点赞 2018-10-07 23:19:00
    数值类变量初始化 整型、浮点型的变量可以在定义的同时进行初始化,一般都初始化为0。 int inum = 0; float fnum = 0.00f; double dnum = 0.00; 字符型变量初始化 字符型变量也可在定义的同时进行初始化...
  • 初始化 State

    千次阅读 2017-05-01 13:04:01
    初始化State的方法有以下方法: 1.在创建store 的时候,createStore()方法的第二个参数preloadeState参数是初始化state的。 2.在reducer中设置state的初始值state={...},也可以使用ES6中默认的参数语法: ...
  • C++成员初始化列表

    千次阅读 2018-12-16 14:20:38
    C++类成员初始化列表C++类型定义C++构造函数的初始化列表定义C++构造函数执行的两个阶段为什么使用初始化列表C++里面哪些东西必须放在初始化列表里面成员变量的初始化顺序 这边文章主要学习C++里面的成员初始化列表...
  • 以下几种情况时必须使用初始化列表: 1 常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面 2 引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面 3 没有默认...
  • 什么静态成员不能在类内初始化 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外...
  • Android编译系统环境初始化过程分析

    万次阅读 多人点赞 2014-02-17 01:00:14
    Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号。Android的编译类型主要有eng、userdebug和user三种,而支持的目标设备型号则是不确定的,它们由当前的源码配置...
  • NSMutableArray的初始化

    千次阅读 2016-08-01 10:42:56
    记得之前一直用这个方法对可变数组进行初始化 NSMutableArray *array = [NSMutableArray alloc] init]; //大神说:这并不是一个好方法有人跟我说用obj-c提供了静态方法 +(id)arrayWithCapacity:size 来创建一个可...
  • 什么静态成员必须在类外初始化

    千次阅读 2013-08-07 23:10:34
    什么静态成员不能在类内初始化 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外初始...
  •  然后是成员初始化,这个部分在类的构造函数前初始化,因为编译器(或者设计者)可能认为构造函数调用了这个成员变量,所以在其前初始化了。或者说是成员自己有自己的能力来初始化自己,不用构造函数来管,这部分属于...
  • 在Java中,有两种初始化块:静态初始化块和非静态初始化块。它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字。 非静态初始化块: 作用:给对象进行初始化。对象一建立就运行,且...
  • 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外初始化,不必再加static关键字 ...
  • SparkContext初始化流程

    千次阅读 2018-11-10 23:11:50
    SparkContext的初始化,包括事件总线(LiveListenerBus),UI界面,心跳,JobProcessListner,ExecutorAllocationManager(资源动态分配管理)等等等等,总之就是有很多东西,这里我只选取几个自认为是核心的东西介绍...
  • U盘初始化

    千次阅读 2018-05-23 13:57:24
    U盘当作启动盘后,再次插入电脑后会无法正常读取,这个时候就可以手动恢复U盘的内存(前提是U盘里没有什么特别重要的东西)。首先将U盘插入电脑,按下“win + R”,在输入框里输入“cmd”,会弹出dos命令窗口 :然后...
  • java 对象属性初始化顺序

    千次阅读 2018-05-30 16:19:56
    A、类的初始化顺序如下: ->1、为静态属性分配内存并赋值(后面大括号语句不执行,这里是初始化,只是添加变量和值)   或 执行静态代码块(立刻执行大括号里面的语句)  为什么这样说呢,因为谁在前先加载...
  • linux初始化代码陷阱门初始化

    千次阅读 2006-05-30 15:45:00
    linux初始化代码陷阱门初始化:trap_init主要功能对异常陷阱程序做初始化,其实就是设置中断描述符表(IDT:interrupt Description Table)。IDT和GDT差不多每个IDT都是由一个8个字节组成。最多0.11内核中支持256个描述符...
  • jQuery页面初始化事件

    千次阅读 2018-01-25 16:52:08
    jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本。 第一种:   $(document).ready(function(){ alert("第一种方法。"); }); 第二种:   $(function(){ alert("第...
  • Servlet什么时候被初始化

    千次阅读 2016-06-12 16:14:11
    如果没有设置loadOnStartup,则第一次请求的时候实例 分三种情况: loadOnStartup 即负数的情况下,web容器启动的时候不做实例处理,servlet首次被调用时做实例 这种情况和没有设置loadOnStartup是一样...
  • 往往被初学者忽视的是,C++类中的数据初始化是有jia

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 477,599
精华内容 191,039
关键字:

初始化是什么东西