1. 程式人生 > >Python中函數和方法的區別

Python中函數和方法的區別

ini import ins function cti body itl 一個 object

1、函數要手動傳self,方法不用傳self

2、如果是一個函數,用類名去調用,如果是一個方法,用對象去調用

舉例說明:

技術分享圖片
class Foo(object):
    def __init__(self):
        self.name="haiyan"
    def func(self):
        print(self.name)

obj = Foo()
obj.func()
Foo.func(obj)
技術分享圖片

判斷函數和方法的方式

技術分享圖片
from types import FunctionType,MethodType
obj = Foo()
print(isinstance(obj.func,FunctionType))  #False
print(isinstance(obj.func,MethodType))   #True   #說明這是一個方法

print(isinstance(Foo.func,FunctionType))  #True   #說明這是一個函數。
print(isinstance(Foo.func,MethodType))  #False
技術分享圖片

Python中函數和方法的區別