python中@staticmethod

@staticmethod用于修饰类中的方法,使其可以再不创建类实例的情况下调用方法,这样做的好处是执行效率较高,当然也可像一般方法一样用实例调用该方法。该方法一般被成为静态方法。静态方法不可以引用类中的属性或方法,其参数列表也不需要约定的默认参数self。

一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。使用

@staticmethod和@classmethod,就可以不需要实例化,直接类名.方法名()调用。

@staticmethod不需要表示自身对象的self和自身类的cls参数,和使用函数一样。

@classmethod不需要self参数,但第一个参数需要是表示自身类的cls参数。

如果在@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。

而@classmethod因为持有cls参数,可以用来调用类的属性,类的方法,实例化对象等,避免硬编码。

你可能感兴趣的:(python,pytorch)