Python的静态函数与常规方法的区别
例如,Python静态函数、常规方法和类方法之间的差异#-* -编码: utf-8-* -
#普通方法、类方法、静态方法的区别
__metaclass__=type
classTst:
name='tst '
data='thisisdata '
#普通方法
defnormalmethod(self,name ) :
printself.data,name
可以访问#类属性的类方法
@classmethod
defclassmethod(cls,name ) :
printcls.data,name
#无法访问静态方法、类属性
@staticmethod
定义方法(name ) :
printname
这三种方法都可以从实例中调用,但只有普通方法更改了tst.data,因为静态方法和类方法无权访问实例属性。 tst=Tst () ) )。
tst.data='thisisnew '
TST.normalmethod('name ) )。
TST.staticmethod('name ) )。
TST.classmethod('name ) )。
#结果
thisisnewname
名字
thisisdataname
区别开来
普通方法不能从类名调用,但静态方法和类方法可以。 #error常规方法必须从实例中调用
TST.normalmethod(name ) (TST.classmethod ) (name ) )。
TST.staticmethod('name ) )结果thisisdataname
名字
总结:
1、可以用普通方法通过self访问实例属性defnormalmethod(self,data )
2、可以通过类方法、cls访问类属性@classmethod
defclassmethod(cls,data ) )。
3、静态方法,不可访问,传值方式@staticmethod
是定义方法(data )
更多技术请关注云海天Python教程。