Django 函数和方法的区别

函数和方法的区别

1、函数要手动传self,方法不用传

2、如果是一个函数,用类名去调用,如果是一个方法,用对象去调用

class Foo(object):
    def __init__(self):
        self.name="lily "
    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

 

posted @ 2018-01-25 21:29  鱼皮弟  阅读(154)  评论(0编辑  收藏  举报