方法和函数是??
什么是函数?,什么是方法?
两者有什么区别?
什么是函数?,什么是方法?
两者有什么区别?
2017-06-21
绑定到类以及对象的函数叫做方法,lambda表达式除外。不属于类和对象的普通函数就叫函数。lambda是个例外,且不论是否从上下文中捕获变量。
测试以下代码即可验证:
import types
def fn_get_grade(self):
pass
class Person(object):
def __init__(self, name, score):
self.name = name
self.score = score
self.get_grade = lambda: 'A'
self.fn_get_grade = fn_get_grade
def get_grade_function(self):
return 'A'
p1 = Person('Bob', 90)
def f():
pass
p1.inner_f = types.MethodType(f,p1,Person)
def f():
pass
print f
print p1.get_grade
print p1.get_grade_function
print p1.inner_f
print p1.fn_get_grade
print p1.get_grade()输出
<function f at 0x7fd59c89c848> <function <lambda> at 0x7fd59c89c668> <bound method Person.get_grade_function of <__main__.Person object at 0x7fd59c896d90>> <bound method Person.f of <__main__.Person object at 0x7fd59c896d90>> <function fn_get_grade at 0x7fd59c89c5f0> A
ok。
举报