Fungsi Python
Fungsi ialah segmen kod yang teratur dan boleh diguna semula yang digunakan untuk melaksanakan fungsi tunggal atau berkaitan. Fungsi
boleh meningkatkan modulariti aplikasi dan penggunaan semula kod. Anda sudah tahu bahawa Python menyediakan banyak fungsi terbina dalam, seperti print(). Tetapi anda juga boleh mencipta fungsi anda sendiri, yang dipanggil fungsi yang ditentukan pengguna.
Tentukan fungsi
Anda boleh mentakrifkan fungsi dengan fungsi yang anda mahu, berikut adalah peraturan mudah:
Kod fungsi A blok bermula dengan kata kunci def, diikuti dengan nama pengecam fungsi dan kurungan ().
Sebarang parameter dan hujah yang masuk mesti diletakkan di antara kurungan. Parameter boleh ditakrifkan antara kurungan.
Baris pertama fungsi boleh secara pilihan menggunakan docstring - digunakan untuk menyimpan perihalan fungsi.
Kandungan fungsi bermula dengan kolon dan diinden.
kembali [ungkapan] Menamatkan fungsi, secara pilihan mengembalikan nilai kepada pemanggil. Kembali tanpa ungkapan adalah bersamaan dengan mengembalikan Tiada.
Sintaks
"Function_docstring"
function_suite
kembalikan [ ungkapan]
Secara lalai, nilai parameter dan nama parameter dipadankan dalam susunan yang ditakrifkan dalam pengisytiharan fungsi.
Contoh
Berikut ialah fungsi Python mudah yang mengambil rentetan sebagai parameter input dan mencetaknya ke peranti paparan standard.
"Cetak rentetan masuk ke peranti paparan standard"
print str
return
Panggilan fungsi
Mentakrifkan fungsi hanya memberikan nama fungsi, menentukan parameter yang terkandung dalam fungsi dan struktur blok kod.
Selepas struktur asas fungsi ini selesai, anda boleh melaksanakannya melalui panggilan fungsi lain atau terus daripada gesaan Python.
Fungsi printme() dipanggil dalam contoh berikut:
# -*- pengekodan: UTF-8 -*-
# Tentukan fungsi
def printme(str):
"Cetak sebarang rentetan masuk"
print str;
return;
# Fungsi panggilan
printme("Saya mahu memanggil fungsi yang ditentukan pengguna!");
printme("Panggil fungsi yang sama sekali lagi");
Hasil keluaran contoh di atas:
Panggil fungsi yang sama sekali lagi
Melalui parameter mengikut nilai dan menghantar parameter mengikut rujukan
Semua parameter (pembolehubah bebas) diluluskan melalui rujukan dalam Python. Jika anda menukar parameter dalam fungsi, parameter asal juga akan ditukar dalam fungsi yang memanggil fungsi ini. Contohnya:
# -*- pengekodan: UTF-8 -*-
# Penerangan fungsi boleh tulis
def changeme (mylist):
"Ubah suai senarai masuk"
mylist.append([1,2,3,4]);
print "Nilai dalam fungsi: ", mylist
return
# Panggil fungsi changeme
mylist = [10,20,30];
changeme( mylist );
print "Nilai di luar fungsi: ", mylist
Objek yang dihantar ke dalam fungsi dan objek untuk menambah kandungan baharu pada akhirnya menggunakan rujukan yang sama. Oleh itu, hasil keluaran adalah seperti berikut:
Nilai di luar fungsi: [10, 20, 30 , [1, 2, 3, 4]]
Parameter
Berikut ialah jenis parameter formal yang boleh digunakan apabila fungsi panggilan:
Parameter yang diperlukan
Parameter kata kunci
Parameter lalai
Parameter panjang boleh ubah
Parameter yang diperlukan
Parameter yang diperlukan mesti dihantar ke dalam fungsi dalam susunan yang betul. Kuantiti apabila dipanggil mestilah sama seperti semasa diisytiharkan.
Apabila memanggil fungsi printme(), anda mesti memasukkan parameter, jika tidak ralat sintaks akan berlaku:
# - *- pengekodan : UTF-8 -*-
#Penerangan fungsi boleh tulis
def printme(str):
"Cetak sebarang rentetan masuk"
print str;
return; 🎜>
Fungsi #Panggil printme
printme();
printme();
TypeError: printme() mengambil tepat 1 argumen (0 diberikan)
Parameter kata kunci
Parameter kata kunci berkait rapat dengan panggilan fungsi menggunakan parameter kata kunci untuk menentukan nilai parameter yang dihantar.
Menggunakan hujah kata kunci membolehkan fungsi dipanggil dalam susunan yang berbeza daripada semasa ia diisytiharkan, kerana penterjemah Python dapat memadankan nama parameter dengan nilai parameter.
Contoh berikut menggunakan nama parameter apabila memanggil function printme():
# -*- pengekodan: UTF-8 -* -
#Penerangan fungsi boleh tulis
def printme(str):
"Cetak sebarang rentetan masuk"
print str;
return;
#Panggil printme function
printme(str = "My string");
Contoh hasil output di atas:
The contoh berikut boleh menunjukkan dengan lebih jelas bahawa susunan parameter kata kunci tidak penting:
# -*- pengekodan: UTF-8 -*-
#Penerangan fungsi boleh tulis
def printinfo(nama, umur):
"Cetak sebarang rentetan masuk"
cetak "Nama: ", nama;
cetak "Umur " , umur;
kembali;
#Panggil fungsi printinfo
printinfo(age=50, name="miki");
Hasil output contoh di atas:
Umur 50
Parameter lalai
Apabila memanggil fungsi, jika nilai parameter lalai tidak dimasukkan, ia dianggap sebagai nilai lalai. Contoh berikut akan mencetak umur lalai jika umur tidak dilalui:
# -*- pengekodan: UTF-8 -*-
#Penerangan fungsi boleh tulis
def printinfo(nama, umur = 35):
"Cetak sebarang rentetan masuk"
cetak "Nama: ", nama;
cetak "Umur " , umur;
kembali;
#Panggil fungsi printinfo
printinfo(age=50, name="miki");
printinfo(name="miki");
Hasil keluaran contoh di atas:
Umur 50
Nama: miki
Umur 35
Parameter panjang tidak tentu
Anda mungkin memerlukan fungsi yang boleh mengendalikan lebih banyak parameter daripada yang diisytiharkan pada asalnya. Parameter ini dipanggil parameter panjang berubah-ubah Tidak seperti dua parameter di atas, ia tidak akan dinamakan apabila diisytiharkan. Sintaks asas adalah seperti berikut:
"Function_docstring"
function_suite
return [expression]
Nama pembolehubah dengan asterisk (*) akan menyimpan semua parameter pembolehubah yang tidak dinamakan. Anda juga boleh memilih untuk tidak melepasi lebih banyak parameter. Contoh berikut:
# -*- pengekodan: UTF-8 -*-
# Penerangan fungsi boleh tulis
def printinfo(arg1, *vartuple):
"Cetak sebarang argumen yang diluluskan"
print "Output: "
print arg1
untuk var dalam vartuple:
print var
return; >
# Panggil fungsi printinfo
printinfo( 10 );
printinfo( 70, 60, 50 );
Output:
70
60
50
Fungsi tanpa namapython menggunakan lambda untuk Cipta fungsi tanpa nama.
- lambda hanyalah ungkapan, dan badan fungsi jauh lebih ringkas daripada def.
- Isi badan lambda ialah ungkapan, bukan blok kod. Hanya logik terhad boleh dirangkumkan dalam ungkapan lambda.
- Fungsi lambda mempunyai ruang nama sendiri dan tidak boleh mengakses parameter di luar senarai parameternya sendiri atau dalam ruang nama global.
- Walaupun fungsi lambda nampaknya hanya boleh menulis satu baris, ia tidak bersamaan dengan fungsi sebaris C atau C++ Tujuan yang terakhir adalah untuk memanggil fungsi kecil tanpa menduduki memori tindanan dan dengan itu meningkatkan kecekapan pelaksanaan.
# Penerangan fungsi boleh tulis
sum = lambda arg1, arg2: arg1 + arg2;
# Panggil fungsi jumlah
cetak "Nilai tambah ialah: " , sum ( 10, 20 )
cetak "Nilai tambah ialah : ", sum( 20, 20 )
kenyataan pulangan
kenyataan pulangan [ungkapan] keluar dari fungsi dan secara pilihan mengembalikan ungkapan kepada pemanggil. Kenyataan pulangan tanpa nilai parameter mengembalikan Tiada. Contoh sebelumnya tidak menunjukkan cara mengembalikan nilai Contoh berikut akan memberitahu anda cara melakukannya:
# -*- pengekodan: UTF -8 -*-
# Penerangan fungsi boleh tulis
def sum(arg1, arg2):
#Mengembalikan jumlah 2 parameter "
jumlah = arg1 + arg2
". cetak dalam fungsi: ", jumlah
kembalikan jumlah;
# Fungsi jumlah panggilan
jumlah = jumlah(10, 20);
cetak "Di luar fungsi: ", jumlah
Hasil keluaran contoh di atas:
Di luar fungsi: 30
Skop pembolehubah
program Tidak semua pembolehubah boleh diakses di semua lokasi bergantung pada tempat pembolehubah ditetapkan.