Gambaran keseluruhan
Pernah terfikir betapa hebatnya kekuatan untuk benar-benar mendapatkan kod sumber beberapa modul Python lain dalam Program anda sendiri? Ini akan membuka idea dan pintu kepada banyak peluang seperti memproses kod sumber modul, mendapatkan dokumen, menghasilkan dokumentasi untuk sekeping kod secara automatik. Izinkan saya memberitahu anda, ini mungkin 100% dengan Python's memeriksa modul.
Modul pemeriksaan Python
Python memeriksa modul membolehkan kita memeriksa objek program yang sedang berjalan, mendapatkan kod sumber modul, mendapatkan dokumen yang berkaitan dengan modul itu, membaca kaedah tandatangan fungsi di Python dan banyak lagi. Dengan cara ini, kita dapat membina projek yang menghasilkan dokumentasi kod langsung untuk projek kita sendiri. Ini bererti bahawa kita hanya perlu membuat komen yang diperlukan pada kod Python kita dan kita boleh menyerahkan tugas selebihnya kepada Python sendiri untuk menghasilkan dokumentasi untuk kita.
Menggunakan contoh kod
Untuk memahami bagaimana Python's memeriksa modul berfungsi, kami akan menggunakan salah satu definisi kod contoh kami sendiri di Python yang hanya menunjukkan warisan di Python dan bagaimana objek dibuat. Mari kita lihat contoh modul yang akan kita gunakan dalam sisa tutorial di sini:
def module_level_function (arg1, arg2 = 'default', * args):"" Saya fungsi tahap modul."" "
local_var = arg1 * 2
pulangkan local_var
Orang kelas (objek):
"" "Definisi untuk kelas Orang."" "
def __init __ (diri, nama):
diri.nama = nama
def get_name (diri):
Msgstr "Mengembalikan nama kejadian."
kembalikan diri.nama
person_obj = Orang ('sample_instance')
Pelajar kelas (Orang):
"" Ini kelas Pelajar, kelas anak Orang.
"" "
# Kaedah ini bukan sebahagian daripada kelas Person.
def do_something_else (diri):
"" "Apa sahaja boleh dilakukan di sini."" "
def get_name (diri):
"Mengganti versi dari kelas Orang"
kembalikan 'Pelajar (' + diri.nama + ')'
Kami telah menentukan modul contoh supaya kami dapat mula mengekstrak kod sumber dan komponen lain daripadanya dalam contoh kemudian yang kami tulis. Mari kita mulakan.
Memeriksa modul
Modul Python di atas disimpan dalam fail yang dipanggil linuxhint.py dalam direktori yang sama di mana kita akan membuat skrip Python baru kita. Kita dapat memeriksa modul di Python dengan membuat import terlebih dahulu. Penyataan import ini akan ada dalam semua skrip yang kami tulis di bahagian kemudian juga. Berikut adalah contoh program untuk memeriksa modul kami:
import memeriksaimport linuxhint
untuk nama, data dalam pemeriksaan.getmembers (linuxhint):
sekiranya nama.bermula dengan('__'):
teruskan
cetak (': !r '.format (nama, data))
Inilah yang kita dapat kembali dengan arahan ini:
Modul pemeriksaan Python
Hasilnya memberi kami perincian mengenai berapa kelas, fungsi dan objek yang ada dalam modul ini semasa skrip dijalankan.
Memeriksa kelas dalam Modul
Contoh di atas yang kami tunjukkan menunjukkan semua butiran modul sekaligus. jika kita hanya ingin mendapatkan maklumat yang berkaitan dengan kelas dalam modul, kita boleh mendapatkan yang sama seperti:
import memeriksaimport linuxhint
untuk kunci, data dalam pemeriksaan.getmembers (linuxhint, memeriksa.isclass):
cetak (': !r '.format (kunci, data))
Mari lihat output untuk arahan ini:
Python memeriksa kelas modul
Keluarannya sama, hanya kali ini, hanya definisi kelas yang dicetak ke konsol.
Kaedah pemeriksaan di dalam kelas
Kaedahnya adalah kaedah yang menentukan tingkah laku kelas dalam OOP dan memberikan maklumat mengenai bagaimana tingkah laku Objek akan diubahsuai kerana kaedah tersebut dipanggil. Oleh sebab itulah, penting untuk mendokumentasikan semua kaedah yang ada di kelas atau modul. Kita boleh mendapatkan maklumat yang berkaitan dengan kaedah seperti ini:
import memeriksadari pprint import pprint
import linuxhint
kertas cetak (periksa.ahli (linuxhint).Orang, periksa.fungsi))
Inilah yang kita dapat kembali dengan arahan ini:
Memeriksa kaedah kelas
Keluaran hanya memaparkan definisi kaedah setiap kaedah yang ada.
Memeriksa objek kelas
Apabila anda meninjau berapa banyak ruang yang dihuni semasa kami menjalankan skrip Python, adalah penting untuk mengetahui berapa banyak objek untuk kelas yang dijadikan contoh untuk kelas dalam program. Untuk mengetahui perkara ini, kita juga boleh mendapatkan maklumat mengenai Objek kelas dalam modul:
import memeriksadari pprint import pprint
import linuxhint
orang = linuxhint.Orang (nama = 'inspect_getmembers')
kertas cetak (periksa.ahli gabungan (orang, memeriksa.kaedah))
Mari lihat output untuk arahan ini:
Memeriksa Objek kelas
Ini juga mencetak alamat memori di mana objek ini tinggal semasa program ini.
Memeriksa Docstring kelas
Dokstring modul adalah bahagian yang sebenarnya memberitahu pengguna atau pembangun mengenai modul ini dan ciri apa yang disediakan olehnya. Dengan modul pemeriksaan, kita dapat memperoleh dokumentasi modul lengkap untuk mendokumentasikannya dengan lebih baik. Mari lihat bagaimana kita dapat mengekstraksi dokumen untuk kelas:
import memeriksaimport linuxhint
cetak ('Orang.__doc__: ')
cetak (linuxhint.Orang.__doc__)
cetak ()
cetak ('getdoc (Orang):')
mencetak (memeriksa.getdoc (linuxhint.Orang))
Inilah yang kita dapat kembali dengan arahan ini:
Mendapatkan Docstring untuk kelas
Memeriksa Sumber kelas
Akhirnya, kita dapat melihat bagaimana kita dapat mengekstrak kod sumber lengkap kelas dalam program Python juga. Ini adalah ciri penting dan ini membantu kita membina alat dokumentasi mengenai modul Python. Mari lihat contoh dalam tindakan:
import memeriksaimport linuxhint
mencetak (memeriksa.getource (linuxhint.Pelajar))
Inilah yang kita dapat kembali dengan arahan ini:
Mendapatkan kod sumber kelas
Memeriksa Sumber kaedah
Dengan cara yang sama kita mengekstrak kod sumber kelas, kita sekarang akan mengekstrak kod sumber kaedah dalam program Python kami:
import memeriksaimport linuxhint
mencetak (memeriksa.getource (linuxhint.Pelajar.get_name))
Inilah yang kita dapat kembali dengan arahan ini:
Mendapatkan sumber kaedah dalam kelas
Tandatangan Kaedah Pemeriksaan
Tanda tangan kaedah memberikan gambaran mendalam tentang apa kaedah dilakukan dan input apa yang diperlukannya. Ini memberi kita kekuatan untuk mendokumentasikan suatu kaedah dengan lebih baik kerana dokumentasi suatu kaedah tidak lengkap tanpa mengetahui apa input yang diperlukan. Inilah cara kami dapat mengekstrak maklumat yang berkaitan dengan tandatangan kaedah:
import memeriksaimport linuxhint
mencetak (memeriksa.tandatangan (linuxhint.modul_level_fungsi))
Inilah yang kita dapat kembali dengan arahan ini:
Mendapatkan Tandatangan Kaedah
Kesimpulannya
Dalam pelajaran ini, kami melihat bagaimana kami dapat memanfaatkan modul pemeriksaan Python untuk melihat kod sumber dan banyak lagi ciri dalaman program Python. Baca lebih banyak catatan berdasarkan Python di sini.