类方法和静态方法怎么实现
1个回答
关注
展开全部
类方法和静态方法怎么实现:类属性和对象属性还是很容易理解的,这两种的访问方式也不同,在某些特殊时候,类属性可以通过对象来访问,比如该对象中没有该属性时,访问对象名.属性名则可以访问到类属性,但是最好不要这么做,因为这么做容易导致类属性和对象属性两者混乱。二、类方法和静态方法之前我们在类中定义的方法都是属于对象方法,换句话说就是这些方法都是跟对象相关的方法,是对象使用的到的方法。
咨询记录 · 回答于2022-12-25
类方法和静态方法怎么实现
类方法和静态方法怎么实现:类属性和对象属性还是很容易理解的,这两种的访问方式也不同,在某些特殊时候,类属性可以通过对象来访问,比如该对象中没有该属性时,访问对象名.属性名则可以访问到类属性,但是最好不要这么做,因为这么做容易导致类属性和对象属性两者混乱。二、类方法和静态方法之前我们在类中定义的方法都是属于对象方法,换句话说就是这些方法都是跟对象相关的方法,是对象使用的到的方法。
换句话说就是这些方法都是跟对象相关的方法,是对象使用的到的方法。除此之外,类中还可以存在类方法和静态方法,这两类方法是属于类的,也就是说这两种方法不是对象该有的方法。类方法用@classmethod装饰器修饰,并且第一个参数是cls,代表类本身;一般使用类名.方法名调用,不建议使用对象名.方法名调用;没有self,不可以使用类中其他对象的属性和方法;可以调用类方法、类属性和静态方法,通过cls调用。
静态方法通过@staticmethod 装饰器修饰;静态方法的写法跟写普通函数一样;一般使用类名.方法名调用,不建议使用对象名.方法名调用;既没有self也没有cls,因此不可以使用类中其他对象的属性和方法;形式参数中没有cls,不建议使用类属性\类方法\静态方法;静态方法是一个单独的方法,我们在定义类的时候,有时候部分函数跟类没关系,但是我们又需要用到它,我们可以在类外面单独定义这个函数,但是这样子的话会使代码变得难理解,因此使用静态方法,把这个单独的函数搬到类中表示。
静态方法和类方法二者并没有本质区别,静态方法通常是一个独立的函数,并没有和特定的对象绑定。由于Python类中只能有一个初始化方法,不能按照不同的情况初始化类,所以类方法可以用来自定义初始化,比如上面的类方法样例,当然静态方法也可以,但是静态方法由于没有形参,所以每次都要写上类的名字,类名一改静态方法就会发生错误,所以静态方法更适合于用来定义跟类没有任何关系的函数,而类方法则可以用来自定义初始化。