python函数可以是一个对象,可以存放在列表中并调用
这篇主要来说明下python
函数本身也可以是一个对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class PythonStudy: def mainProgram( self ): i = self .test01 i() def test01( self ): print ( "hello!" ) if __name__ = = '__main__' : main = PythonStudy() main.mainProgram() """ result: hello! """ |
可以看到这里我们将PythonStudy
类下的test01
函数作为一个对象传递给了变量i
,即此时变量i存储着函数test01
对象。
如果我们要调用函数test01
,只需要使用i()
即可。
i = self.test01
中的self
指代的是PythonStudy
类,如果不清楚,可以看一看Python
中类相关的定义。
拓展:将函数对象作为列表逐个调用
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class PythonStudy: def mainProgram( self ): func_list = [ self .test01, self .test02] for i in func_list: i() def test01( self ): print ( "hello!" ) def test02( self ): print ( "hallo!" ) if __name__ = = '__main__' : main = PythonStudy() main.mainProgram() """ result: hello! hallo! """ |
可以看到这里我们将函数对象test01
与test02
一起放置在了一个列表对象中。
之后我们使用for
循环对列表中的元素进行遍历,然后使用i()
分别调用这两个函数得到最终的结果。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。