python中调用函数,只写一个函数名是什么意思?
一:问题
python中调用函数,只写一个函数名是什么意思?
二:回答
只写函数名,则调用的是函数的地址
写函数名并传参,则调用的是函数返回值
举例说明:
1 test_data =[{"name":"李白","order":1},{"name":"杜甫","order":4}, 2 {"name":"高力士","order":2},{"name":"高适","order":3}] 3 4 def sort_func(item): 5 return item["order"] 6 7 #对数据降序排序 8 test_data.sort(key = sort_func,reverse=True) 9 print(filter_data) 10 11 >>> 运行结果如下: 12 >>> [{'name': 'jane', 'sex': 'female', 'age': 40}, {'name': 'linda', 'sex': 'female', 'age': 35}, {'name': 'soniar', 'sex': 'female', 'age': 28}]
这里第8行key=sort_func,sort_func后面就没有跟上(item),这里传的就是sort_func函数的地址
简单理解就是:
def sort_func(a): return a print(sort_func) print(sort_func(3)) >>> 程序运行结果如下: >>> <function sort_func at 0x000001272DD71C10> >>> 3
上面第一个print(sort_func),打印的是函数sort_func的地址,第二个print(sort_func(3)),打印的是函数的返回值。