Menyingkap Sifat Fungsi, Kaedah Tidak Terikat dan Kaedah Terikat
Konsep kelas dan kaedah adalah asas kepada paradigma pengaturcaraan berorientasikan objek . Memahami nuansa dan hubungan antara fungsi, kaedah tidak terikat dan kaedah terikat adalah penting untuk menguasai selok-belok sistem penyelesaian kaedah Python.
Mentakrifkan Entiti
Transformasi dan Kebolehcapaian
Perbezaan Utama
Kesamaan dan Penggunaan
Dalam kedua-dua Python 2 dan Python 3, ungkapan berikut adalah setara dari segi fungsi:
<code class="python">f1(C()) C.f1(C()) C().f1()</code>
Mengikat fungsi pada tika menghasilkan versi yang diubah suai di mana parameter pertama secara semula jadi ditetapkan kepada tika yang diberikan. Pada asasnya, kaedah terikat ini berkelakuan sama dengan bentuk alternatif berikut:
<code class="python">lambda *args, **kwargs: f1(C(), *args, **kwargs) functools.partial(f1, C())</code>
Dari Tidak Terikat ke Terikat
Instance Python 2 bagi kelas tidak mempunyai atribut langsung yang sepadan kepada kaedah tidak terikat, yang sebaliknya boleh diperoleh semula melalui atribut __dict__ kelas itu sendiri. Walau bagaimanapun, mengakses kaedah tidak terikat pada kejadian menyebabkan penukaran automatiknya kepada kaedah terikat.
Kesimpulan
Memahami perbezaan antara fungsi, kaedah tidak terikat dan kaedah terikat memberi anda kuasa untuk menggunakan mekanisme penyelesaian kaedah Python dengan berkesan. Memahami mekanisme pengikatan dan transformasi memperkasakan anda untuk menavigasi kerumitan pengekodan berorientasikan objek dengan mudah.
Atas ialah kandungan terperinci Bagaimanakah Fungsi, Kaedah Tidak Terikat dan Kaedah Terikat Berbeza dalam Sistem Penyelesaian Kaedah Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!