什么是函数、什么是方法/什么后面可以加括号?

函数和方法的区别

  • 函数要手动传self,方法不用传
  • 如果是一个函数,用类名去调用
  • 如果是一个方法,用对象去调用 

示例

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

什么后面可以加括号?

  • 方法
  • 函数
  • 对象

以上四种,后面都可以加括号 ()

猜你喜欢

转载自www.cnblogs.com/bigtreei/p/8931782.html