1. 程式人生 > >python例項方法、類方法以及靜態方法

python例項方法、類方法以及靜態方法

不多說,直接上程式碼示例講解。 下面三個方法一次為:示例方法、類放大、靜態方法。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Kls(object):
    def foo(self, x):
        print('executing foo(%s,%s)' % (self, x))

    @classmethod
    def class_foo(cls,x):
        print('executing class_foo(%s,%s)' % (cls,x))

    @staticmethod
    def
static_foo(x): print('executing static_foo(%s)' % x) if __name__ == '__main__': ik = Kls() ik.foo(1) print(ik.foo) print('------------------------------------------------') ik.class_foo(1) Kls.class_foo(1) print(ik.class_foo) print('------------------------------------------------'
) ik.static_foo(1) Kls.static_foo(1) print(ik.static_foo)

輸出如下:

C:\Python36\python3.exe "C:/own/my_exercise/instance and static.py"
executing foo(<__main__.Kls object at 0x02D2DD50>,1)
<bound method Kls.foo of <__main__.Kls object at 0x02D2DD50>>
------------------------------------------------
executing class_foo(<class '__main__.Kls'>,1)
executing class_foo(<class '__main__.Kls'>,1)
<bound method Kls.class_foo of <class '__main__.Kls'>>
------------------------------------------------
executing static_foo(1)
executing static_foo(1)
<function Kls.static_foo at 0x02D1A588>

如上,三個方法區分如下: 例項方法:

  • 通過類的例項進行呼叫
  • 不可以通過類直接呼叫
  • 最為常見

類方法:

  • 既可以通過類也可以通過例項呼叫類方法

靜態方法:

  • 需要定義一些方法,這些方法跟類有關,但在實現時並不需要引用類或者例項,例如,設定環境變數,修改另一個類的變數等;靜態方法很像我們在類外定義的函式。
  • 可以使用類也可以使用示例呼叫靜態方法