what is the different between function and method in python

来源:互联网 发布:tomcat启动源码 编辑:程序博客网 时间:2024/05/21 10:46

Recently, I’m concentrating on nose plugin development.
Some people would be confused with some descriptions in http://nose.readthedocs.io/en/latest/plugins/interface.html

wantFunction(function)Return true to collect this function as a test, false to prevent it from being collected, and None if you don’t care.Parameters: function – The function object being examined by the selectorwantMethod(method)Return true to collect this method as a test, false to prevent it from being collected, and None if you don’t care.Parameters: method (unbound method) – The method object being examined by the selector

what is the different between function and method?

After some experiments, we get the conclusion below:
- function is defined out of class in python
- method is defined in a class

>>> def a(): pass>>> a<function a at 0x107063aa0>>>> type(a)<type 'function'>>>> class A:...   def a(self): pass>>> A.a<unbound method A.a>>>> type(A.a)<type 'instancemethod'>
import unittestdef test_function():      print "test_function will be invoked by wantFunction"class TestStringMethods(unittest.TestCase)     def test_method(self):           print "test_method will be invoked by wantMethod"
0 0
原创粉丝点击