Python3回调函数
生活随笔
收集整理的這篇文章主要介紹了
Python3回调函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先看一下C/C++的回調函數實例:
#include<iostream>using namespace std;int computer(int a, int b, int(*func)(int, int)) {return func(a, b); }int max(int a, int b) {return (a > b ? a : b); }int min(int a, int b) {return (a > b ? b : a); }int sum(int a, int b) {return a + b; }int main() {int a, b, res;cout << "請輸入整數a:"; cin >> a;cout << "請輸入整數b:"; cin >> b;res = computer(a, b, &max);cout << "Max of " << a << " and " << b << " is " << res << endl;res = computer(a, b, &min);cout << "Min of " << a << " and " << b << " is " << res << endl;res = computer(a, b, &sum);cout << "Sum of " << a << " and " << b << " is " << res << endl;return 0; }結果:
?
再看python的情況:
def computer(a, b, func):return func(a, b)def max(a, b):return [a, b][a < b]def min(a, b):return [a, b][a > b]def sum(a, b):return str(int(a) + int(b))if __name__ == "__main__":a = input("請輸入整數a:")b = input("請輸入整數b:")res = computer(a, b, max)print("Max of " + a + " and " + b + " is " + res)res = computer(a, b, min)print("Min of " + a + " and " + b + " is " + res)res = computer(a, b, sum)print("Sum of " + a + " and " + b + " is " + res)結果:
?
注意:一開始在測試上面python代碼的時候,我沒有加類型轉換str()和int(),出現了輸出 Sum of 5 and 12 is 512 的情況。看來python用起來是方便,但是編譯器幫我們做了太多的事情,有時候會讓我們忽略一些程序的本質,所以不能光學python啊,c++還是要多看看,有助于對程序本質的理解。
? ? ? ? 說白了,回調函數和普通函數在定義的時候沒有什么區別,只有在調用時才看出來是不是回調函數,正常調用就是普通函數,作為一個函數的參數在需要的時候分情況調用,就是回調函數。
? ? ? ? 另外,回調函數還可以進行異步調用,即非阻塞調用,通常用在多線程或者多進程中。暫時沒用到,先了解。
總結
以上是生活随笔為你收集整理的Python3回调函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu安装java8
- 下一篇: Python global文件的全局变量