Python語言特性-三種方法

Python其實有三個方法:
靜態方法(staticmehtod)
類方法(classmethod)
實例方法

下面依次來看:

def foo(x):
	print 'hello foo(%s)' % (x)

class A(object):
	def foo(self, x):
		print 'hello foo(%s, %s)' % (self, x)
	
	@classmethod
	def class_foo(cls, x):
		print 'hello class_foo(%s, %s)' % (cls, x)

	@staticmethod
	def static_foo(x):
		print 'hello static_foo(%s)' %x

a= A()
	

一般的函數就可以這樣調用foo(x),與類和實例無關。
對於實例方法,我們都知道在類裏定義方法的時候都需要綁定這個實例,就是foo(self, x),這麼做的目的就是實例方法的調用離不開實例,我們在使用的時候需要把實例自己傳給參數,即a.foo(x), (其實是foo(a, x)),類方法也是如此,只不過它傳遞的是類而不是實例,即A.class_foo(x) .

對於靜態方法大致上和普通方法是一致的,不需要對誰進行綁定,唯一的區別是調用的時候需要使用
a.static_foo(x) 或者 A.static_foo(x)來調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章