Bagaimana untuk mencipta fungsi peringkat tinggi dalam Python?

PHPz
Lepaskan: 2023-09-05 19:29:05
ke hadapan
1277 orang telah melayarinya

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 −

Fungsi sebagai Objek

Terjemahan bahasa Cina bagi

Contoh

ialah:

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'))
Salin selepas log masuk

Output

tHISISIT!
hELLO
Salin selepas log masuk

Fungsi lulus sebagai parameter

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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)
Salin selepas log masuk

Output

tHIS IS IT!
This is it!
Salin selepas log masuk

Sekarang, mari kita bincangkan penghias. Kita boleh menggunakan penghias sebagai fungsi pesanan yang lebih tinggi.

Penghias dalam Python

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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.")
Salin selepas log masuk

juga boleh ditulis sebagai -

def demo_decorator():
   print("This is sample text.")
hello_decorator = mydecorator (demo_decorator)
Salin selepas log masuk

Contoh penghias

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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)
Salin selepas log masuk
Salin selepas log masuk

Output

Sum = 30
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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)
Salin selepas log masuk
Salin selepas log masuk

Output

Sum = 30
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Gunakan penghias sintaks

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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)
Salin selepas log masuk

Output

Sum = 30
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan