精华内容
下载资源
问答
  • 参数学习方法和非参数学习的区别

    千次阅读 2019-03-01 11:02:59
    非参数学习方法是:在预测新样本值时候每次都会重新训练数据得到新参数值,也就是说每次预测新样本都会依赖训练数据集合,所以每次得到参数值是不确定。例如局部加权回归(LWR)就是非参数学习方法。 ...

    参数学习方法:在训练完成所有数据后得到一系列训练参数,然后根据训练参数来预测新样本的值,这时不再依赖之前的训练数据了,参数值是确定的。

    而非参数学习方法是:在预测新样本值时候每次都会重新训练数据得到新的参数值,也就是说每次预测新样本都会依赖训练数据集合,所以每次得到的参数值是不确定的。例如局部加权回归(LWR)就是非参数学习方法。

    reference:https://blog.csdn.net/qq_30091945/article/details/62896771

    展开全文
  • 参数模型和非参数模型的区别

    万次阅读 2015-03-01 15:17:57
    参数与非参数模型 用代数方程、微分方程、微分方程组以及传递函数等描述模型都是参数...运用各种系统辨识的方法,可由非参数模型得到参数模型。如果实验前可以决定系统结构,则通过实验辨识可以直接得到参数模型。

    参数与非参数模型  用代数方程、微分方程、微分方程组以及传递函数等描述的模型都是参数模型。建立参数模型就在于确定已知模型结构中的各个参数。通过理论分析总是得出参数模型。非参数模型是直接或间接地从实际系统的实验分析中得到的响应,例如通过实验记录到的系统脉冲响应或阶跃响应就是非参数模型。运用各种系统辨识的方法,可由非参数模型得到参数模型。如果实验前可以决定系统的结构,则通过实验辨识可以直接得到参数模型。

    展开全文
  • 这一区别的外在表现为实例方法内可使用this关键字代表所从属实例对象,而静态方法不可使用this因为静态方法不针对任何实例对象。实例对象调用静态方法会因参数中多出一个指向自己指针(this)而发生错误。 定义...

    实例方法比静态方法多传递一个隐含的指针参数,该指针指向该方法所从属的已被实例化的对象。这一区别的外在表现为实例方法内可使用this关键字代表所从属的实例对象,而静态方法不可使用this因为静态方法不针对任何实例对象。实例对象调用静态方法会因参数中多出一个指向自己的指针(this)而发生错误。

    定义静态方法只需加注static关键字即可。静态方法独立于对象实例之外,与对象是否已被实例化无关,调用静态方法要用类定义的名称而不能用实例名称如:
    class a
    {
    ...
    public static void b(){}//静态方法
    public void d(){}//实例方法
    }
    a c = new a();

    a.b();//正确的调用方式,与对象实例无关。
    a.d();//错误的调用方式。
    c.b();//错误的调用方式。
    c.d();//正确的调用方式,隐含this指针,不需要也不允许显式传入对象指针。

    转载于:https://www.cnblogs.com/s-Yang/p/3226934.html

    展开全文
  • 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例属性和方法(也可以传类属性和方法); 调用:只能由实例对象调用。类方法 定义:使用装饰器@classmethod。第一个参数...

    5d7c784d20018f789f659c6810af3562.png

    实例方法

    定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);

    调用:只能由实例对象调用。

    类方法

    定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);

    调用:实例对象和类对象都可以调用。

    静态方法

    定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;

    调用:实例对象和类对象都可以调用。

    实例方法

    简而言之,实例方法就是类的实例能够使用的方法。这里不做过多解释。

    类方法

    使用装饰器@classmethod。

    原则上,类方法是将类本身作为对象进行操作的方法。假设有个方法,且这个方法在逻辑上采用类本身作为对象来调用更合理,那么这个方法就可以定义为类方法。另外,如果需要继承,也可以定义为类方法。

    如下场景:

    假设我有一个学生类和一个班级类,想要实现的功能为:
    执行班级人数增加的操作、获得班级的总人数;
    学生类继承自班级类,每实例化一个学生,班级人数都能增加;
    最后,我想定义一些学生,获得班级中的总人数。

    思考:这个问题用类方法做比较合适,为什么?因为我实例化的是学生,但是如果我从学生这一个实例中获得班级总人数,在逻辑上显然是不合理的。同时,如果想要获得班级总人数,如果生成一个班级的实例也是没有必要的。

    class ClassTest(object):
        __num = 0
    
        @classmethod
        def addNum(cls):
            cls.__num += 1
    
        @classmethod
        def getNum(cls):
            return cls.__num
    
        # 这里我用到魔术函数__new__,主要是为了在创建实例的时候调用人数累加的函数。
        def __new__(self):
            ClassTest.addNum()
            return super(ClassTest, self).__new__(self)
    
    
    class Student(ClassTest):
        def __init__(self):
            self.name = ''
    
    a = Student()
    b = Student()
    print(ClassTest.getNum())

    输出结果是:2

    静态方法

    使用装饰器@staticmethod。

    静态方法是类中的函数,不需要实例。静态方法主要是用来存放逻辑性的代码,逻辑上属于类,但是和类本身没有关系,也就是说在静态方法中,不会涉及到类中的属性和方法的操作。可以理解为,静态方法是个独立的、单纯的函数,它仅仅托管于某个类的名称空间中,便于使用和维护。

    譬如,我想定义一个关于时间操作的类,其中有一个获取当前时间的函数。

    import time
    
    class TimeTest(object):
        def __init__(self, hour, minute, second):
            self.hour = hour
            self.minute = minute
            self.second = second
    
        @staticmethod
        def showTime():
            return time.strftime("%H:%M:%S", time.localtime())
    
    
    print(TimeTest.showTime())
    t = TimeTest(2, 10, 10)
    nowTime = t.showTime()
    print(nowTime)

    输出结果是:

    d6760c94476649b4764e8ebe85dad1c6.png

    如上,使用了静态方法(函数),然而方法体中并没使用(也不能使用)类或实例的属性(或方法)。若要获得当前时间的字符串时,并不一定需要实例化对象,此时对于静态方法而言,所在类更像是一种名称空间。

    其实,我们也可以在类外面写一个同样的函数来做这些事,但是这样做就打乱了逻辑关系,也会导致以后代码维护困难。

    @abstractmethod的用法

    抽象方法:
    抽象方法表示基类的一个方法,没有实现,所以基类不能实例化,子类实现了该抽象方法才能被实例化。
    Python的abc提供了@abstractmethod装饰器实现抽象方法,下面以Python3的abc模块举例。

    @abstractmethod:
    见下图的代码,基类Foo的fun方法被@abstractmethod装饰了,所以Foo不能被实例化;子类SubA没有实现基类的fun方法也不能被实例化;子类SubB实现了基类的抽象方法fun所以能实例化。

    54a1315f3ec8fd28b32f444011edbe70.png

    [1]

    参考

    1. ^转载地址: https://www.cnblogs.com/geogre123/p/10142510.html
    展开全文
  • 这里会发现t1对ID进行了修改却影响了t2ID, 这就说明ID属于Test类,而对象,换句话说这个属性是全体Test实例共用。这是因为self意思同c++this指针,它代表了类当前实例,所以加了self属性就是类...
  • 在java中声明JNI静态方法(native static)和非静态方法,对于底层C/C++代码来说是有区别的: JNI函数的参数也由三部分组成:首先是JNIEnv*,是一个指向JNI运行环境指针;第二个参数随本地方法是静态还是非...
  • Java中静态方法与静态方法的区别

    千次阅读 2017-10-21 23:44:49
    静态方法静态方法之间的区别: (1)静态方法中只能调用静态成员或者静态方法,不能直接调用静态成员或方法,如果需要调用,则需要先实例化; (2)静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被...
  • 将代码块标记为已同步时,请使用对象作为参数。当执行线程进入这样代码块时,它必须首先等待,直到该同一对象上同步块中没有其他正在执行线程。Object a = new Object();Object b = new Object();......
  • python中实现静态方法和类方法都是依赖于python修饰器来实现。 对象方法有self参数,类方法有cls参数,静态方法是不需要这些附加参数的。1、我们已经讨论了类/对象可以拥有像函数一样方法,这些对象方法与函数...
  • 都可以用于抽象方法和非抽象方法之间。 (2)不同点: a.方法重写要求签名必须一致,而方法重载要求参数个数或者类型不同必须不一致。 b.方法重写要求返回类型必须一致,而方法重载对此不做限制。 c.方法重写...
  • 方法和函数的区别

    千次阅读 2017-07-15 16:58:31
    方法指的是一段被它关联的对象通过它的名字调用的代码块,函数方法有下面亮点区别。 1.一个方法会隐私的传递调用该方法的对象。 例如:在java静态方法中可以使用this关键字 2.一个方法可以可以处理包含在一个...
  • 如果函数接收是非指针类型的参数,那么函数接收一定是传入数据拷贝(任何类型都是如此)。如果接收是指针类型的参数,则传入是原类型地址,传入后在函数内部修改可以修改到原类型数据。 例如 type student...
  •  在传递给对象参数的时候,Java编译器自动先加上了一个this参数,它表示传递是这个对象引用,虽然他们两个对象共用一个方法,但是他们的方法中所产生数据是私有,这是因为参数被传进来变成call stack内...
  • 上一篇博客写了关于 实例方法、类方法,静态方法的思考,但是归根到底还是python中绑定方法和非绑定方法的的区别一、绑定方法:1、凡是类中的方法或者函数,默认都是绑定给对象使用的。绑定给对象有一种好处,就是...
  • arr[0],arr.length的含义1.4 二维数组的理解1.5 排序算法(冒泡)冒泡排序表示2 方法2.1 为什么要使用方法2.2 方法的命名2.3 方法的优点2.4 在方法的调用的过程2.5 方法的参数:2.7 return 语句2.8 重载3 类类的...
  • 参数 相同点 不同点 ...参数是this对象 ...实现同步同时,会阻塞其他线程获取这个对象锁,影响...synchronized(this)代码块中程序与同步方法是异步,不与其他锁this同步方法争夺this锁,可以提高执行效率
  • python的类方法和实例...实例方法和类方法最主要的区别在于,定义类方法主要是要加一个装饰器,@classmethod 而实例方法没有这个装饰器。一般实例方法至少有一个参数,通常用self,也可以用其他关键字字符代替....
  • scala 中方法和函数的区别

    千次阅读 2017-02-21 14:53:35
    定义函数类型:形式为(T1,…, Tn) => U,其实是FunctionN trait简写形式,匿名函数和方法值具有这种类型(其实可以作为方法类型一部分) 方法类型:一个值类型(non-value type),里边是没有值,一个方法值具有...
  • 在java中声明JNI静态方法(native static)和非静态方法,对于底层C/C++代码来说是有区别的。 JNI函数的参数也由三部分组成: 首先是JNIEnv*,是一个指向JNI运行环境指针; 第二个参数随本地方法是静态...
  • 2.重写的目的:可以隐藏从父类继承的方法,子类通过方法的重写可以把父类的状态行为改变为自身的状态行为,如果要用父类的方法可以使用关键字super。 3.重写的注意事项: 1、参数列表必须完全与
  • 1、加载时间  首先明白内存问题  Java内存分为:堆内存、栈内存、方法区(静态区和非静态区... 在第一次创建一个类实例,或者调用类的静态属性、静态方法的时候会发生类加载!  关于类的加载,详见:http://w...
  • 什么是静态方法?什么是实例方法?静态方法: 静态方法属于类,通过 类名.方法名(参数)调用。...静态方法与实例方法的加载期区别: jvm只有一个堆区(heap)被所有线程共享,堆区中有一块特殊区域叫方...
  • Java load loadlibrary方法的区别

    千次阅读 2019-10-30 17:28:35
    1. 相同点: 两个方法都是用来装载dll文件,不论是JNI库文件还是... System.load(String filename) ,参数为dll文件绝对路径,可以是任意路径。 System.load("D:\\java\\Test.dll"); b. System.loadLibrary...
  • 很多人认为静态方法在类加载时加载,生命周期与类相同,实例方法在类实例化后存在,生命周期比静态方法短。这是错误的! 什么是静态方法?...静态方法与实例方法的加载期区别: jvm只有一个堆区(heap)被
  • 四 classmethod与staticmethod的区别 五 练习 一 类中定义的函数分成两大类 一:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):  1. 绑定到类的方法:用classmethod装饰器装饰的方法...
  • 方法重写(方法覆盖)与方法重载的区别 方法重写 也称为方法覆盖,子类重写的方法必须与父类被重写的方法具有相同的方法名、参数列表相同(或相容)的返回值类型,否则不构成重写 方法重写只针对实例方法,对于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,187
精华内容 474
关键字:

参数方法和非参数方法的区别