Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mencipta fungsi peringkat tinggi dalam Python?
Dalam Python, fungsi yang mengambil fungsi lain sebagai parameter atau mengembalikan fungsi sebagai output dipanggil fungsi tertib lebih tinggi. Mari lihat ciri-cirinya -
Fungsi ini boleh disimpan dalam pembolehubah.
Fungsi ini boleh dihantar sebagai parameter kepada fungsi lain.
Fungsi tertib tinggi boleh disimpan dalam senarai, jadual cincang, dll.
Fungsi boleh dikembalikan daripada fungsi.
Mari kita lihat beberapa contoh −
Dalam contoh ini, fungsi ini dianggap sebagai objek. Di sini, fungsi demo() diberikan kepada pembolehubah -
# Creating a function def demo(mystr): return mystr.swapcase() # swapping the case print(demo('Thisisit!')) sample = demo print(sample('Hello'))
tHISISIT! hELLO
Fungsi ini diluluskan sebagai parameter. demo3() Panggilan fungsi demo() dan demo2() berfungsi sebagai parameter.
def demo(text): return text.swapcase() def demo2(text): return text.capitalize() def demo3(func): res = func("This is it!") # Function passed as an argument print (res) # Calling demo3(demo) demo3(demo2)
tHIS IS IT! This is it!
Sekarang, mari kita bincangkan penghias. Kita boleh menggunakan penghias sebagai fungsi pesanan yang lebih tinggi.
Dalam penghias, fungsi dihantar sebagai parameter kepada fungsi lain, yang kemudiannya dipanggil dalam fungsi pembalut. Mari lihat contoh cepat −
@mydecorator def hello_decorator(): print("This is sample text.")
juga boleh ditulis sebagai -
def demo_decorator(): print("This is sample text.") hello_decorator = mydecorator (demo_decorator)
Dalam contoh ini, kami akan bekerjasama dengan penghias sebagai fungsi tertib tinggi -
def demoFunc(x,y): print("Sum = ",x+y) # outer function def outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc # calling demoFunc2 = outerFunc(demoFunc) demoFunc2(10, 20)
Sum = 30Terjemahan bahasa Cina bagi
def demoFunc(x,y): print("Sum = ",x+y) # outer function def outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc # calling demoFunc2 = outerFunc(demoFunc) demoFunc2(10, 20)
Sum = 30
Contoh di atas boleh dipermudahkan menggunakan penghias dengan @simbol. Aplikasi penghias boleh dipermudahkan dengan meletakkan simbol @ sebelum fungsi yang ingin kita hiaskan -
# outer function def outerFunc(sample): def innerFunc(x,y): # inner function return sample(x,y) return innerFunc @outerFunc def demoFunc(x,y): print("Sum = ",x+y) demoFunc(10,20)
Sum = 30
Atas ialah kandungan terperinci Bagaimana untuk mencipta fungsi peringkat tinggi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!