方法和函数是??
什么是函数?,什么是方法?
两者有什么区别?
什么是函数?,什么是方法?
两者有什么区别?
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。
举报