Kaedah Instance vs Static vs Class di Python: Perbezaan Penting

Kaedah Instance vs Static vs Class di Python: Perbezaan Penting

Kaedah Python sering membingungkan apabila anda memasuki pengaturcaraan berorientasikan objek (OOP). Panduan ini merangkumi tiga jenis kaedah utama di Python.





3 Jenis Kaedah di Python

Terdapat tiga jenis kaedah di Python: kaedah contoh , kaedah statik , dan kaedah kelas .





Mengetahui perbezaan tidak selalu diperlukan untuk membuat kod skrip Python asas, tetapi setelah anda memasuki OOP, perbezaan tersebut dapat membuat perubahan besar.





Sekiranya anda baru menggunakan Python, atau hanya ingin bereksperimen tanpa perlu memasang apa-apa, pastikan anda melawatnya cengkerang Python interaktif dalam talian .

Sebelum Kita Bermula: Memahami Corak Penghias

Sebelum melihat perbezaannya, penting untuk memahami corak reka bentuk yang dikenali sebagai corak penghias , atau hanya disebut a penghias .



Penghias terdengar kompleks, tetapi tidak ada yang perlu ditakuti. Penghias hanyalah fungsi. Anda boleh menulisnya sendiri, atau menggunakannya yang terdapat di perpustakaan, atau pustaka standard Python.

Seperti mana-mana fungsi, penghias melaksanakan tugas. Perbezaannya di sini ialah penghias menerapkan logik atau mengubah tingkah laku fungsi lain. Ini adalah kaedah terbaik untuk menggunakan semula kod, dan dapat membantu memisahkan logik menjadi kebimbangan individu.





Corak penghias adalah kaedah pilihan Python untuk menentukan kaedah statik atau kelas. Inilah rupa seseorang di Python:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is decorated! '''
print('I'm a decorated function!')

de = DecoratorExample()
de.example_function()

Penghias mesti mendahului majlis atau deklarasi kelas. Mereka bermula dengan @ tanda, dan tidak seperti kaedah biasa, anda tidak perlu meletakkan tanda kurung di hujungnya kecuali anda memberikan hujah.





Anda boleh menggabungkan beberapa penghias, menulis sendiri, dan menerapkannya ke kelas juga, tetapi anda tidak perlu melakukan itu untuk contoh ini.

log masuk facebook dengan akaun yang berbeza

Kaedah Contoh di Python

Kaedah contoh adalah jenis kaedah yang paling biasa di kelas Python. Ini disebut kerana mereka dapat mengakses data unik dari kejadian mereka. Sekiranya anda mempunyai dua objek yang masing-masing dibuat dari kelas kereta, masing-masing mungkin mempunyai sifat yang berbeza. Mereka mungkin mempunyai warna, saiz enjin, tempat duduk dan lain-lain.

Kaedah contoh mesti ada diri sebagai parameter, tetapi anda tidak perlu menyampaikannya setiap saat. Diri adalah istilah khas Python yang lain. Di dalam mana-mana kaedah contoh, anda dapat menggunakan diri untuk mengakses data atau kaedah yang mungkin ada di kelas anda. Anda tidak akan dapat mengaksesnya tanpa melalui diri sendiri.

Akhirnya, kerana kaedah contoh adalah yang paling umum, tidak diperlukan penghias. Kaedah apa pun yang anda buat akan dibuat secara automatik sebagai kaedah contoh, kecuali anda memberitahu Python sebaliknya.

Inilah contohnya:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
self.name = 'Decorator_Example'
def example_function(self):
''' This method is an instance method! '''
print('I'm an instance method!')
print('My name is ' + self.name)

de = DecoratorExample()
de.example_function()

The nama pemboleh ubah diakses melalui diri . Perhatikan bahawa bila contoh_fungsi dipanggil, anda tidak perlu menyerahkan diri --- Python melakukan ini untuk anda.

Kaedah Statik di Python

Kaedah statik adalah kaedah yang berkaitan dengan kelas dalam beberapa cara, tetapi tidak perlu mengakses data khusus kelas. Anda tidak perlu menggunakan diri , dan anda bahkan tidak perlu membuat contoh, anda boleh memanggil kaedah anda:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is a static method! '''
print('I'm a static method!')

de = DecoratorExample.example_function()

The @staticmethod penghias digunakan untuk memberitahu Python bahawa kaedah ini adalah kaedah statik.

Kaedah statik sangat baik untuk fungsi utiliti, yang menjalankan tugas secara terpisah. Mereka tidak perlu (dan tidak dapat) mengakses data kelas. Data tersebut harus lengkap, dan hanya berfungsi dengan data yang disertakan sebagai argumen. Anda boleh menggunakan kaedah statik untuk menambahkan dua nombor bersama, atau mencetak rentetan yang diberikan.

Kaedah Kelas di Python

Kaedah kelas adalah jenis kaedah OOP ketiga dan terakhir yang perlu diketahui. Kaedah kelas mengetahui mengenai kelasnya. Mereka tidak dapat mengakses data contoh tertentu, tetapi mereka dapat memanggil kaedah statik lain.

Kaedah kelas tidak perlu diri sebagai hujah, tetapi mereka memerlukan parameter yang disebut kl . Ini bermaksud kelas , dan seperti diri, secara automatik diserahkan oleh Python.

Kaedah kelas dibuat dengan menggunakan @kelas penghias.

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@classmethod
def example_function(cls):
''' This method is a class method! '''
print('I'm a class method!')
cls.some_other_function()
@staticmethod
def some_other_function():
print('Hello!')

de = DecoratorExample()
de.example_function()

Kaedah kelas mungkin jenis kaedah yang lebih membingungkan dari ketiga, tetapi mereka mempunyai kegunaannya. Kaedah kelas dapat memanipulasi kelas itu sendiri, yang berguna semasa anda mengusahakan projek yang lebih besar dan lebih kompleks.

Bilakah Menggunakan Setiap Jenis Kaedah

Nampaknya keputusan yang sukar dan menakutkan memilih antara jenis kaedah di Python, tetapi anda akan segera memanfaatkannya dengan sedikit latihan.

distro linux terbaik untuk pembangunan web

Walaupun anda hanya menulis skrip kecil untuk bersenang-senang, mempelajari ciri OOP Python yang lain adalah kemahiran yang hebat untuk diketahui, dan dapat membantu menjadikan kod anda lebih mudah diselesaikan, dan lebih mudah digunakan semula pada masa akan datang.

Ringkasnya:

  1. Kaedah Contoh: Jenis kaedah yang paling biasa. Mampu mengakses data dan sifat yang unik untuk setiap contoh.
  2. Kaedah Statik: Tidak dapat mengakses perkara lain di kelas. Kod lengkap sepenuhnya.
  3. Kaedah Kelas: Boleh mengakses kaedah terhad di kelas. Boleh mengubah suai perincian khusus kelas.

Sekiranya tutorial ini agak maju, atau tidak seperti yang anda cari, maka mengapa tidak melihat kursus ini untuk bermula dari Python beginner to pro? 5 laman web ini juga bagus untuk pemula Python. Sekiranya anda mahukan penggunaan Python secara fizikal dan nyata, tetapi bosan dengan Raspberry Pi, bagaimana dengan panduan kami untuk mengawal Arduino dengan Python ?

Berkongsi Berkongsi Tweet E-mel Cara Membersihkan PC Windows Anda Menggunakan Prompt Perintah

Sekiranya ruang komputer Windows anda hampir habis, bersihkan sampah menggunakan utiliti Prompt Perintah pantas ini.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Pengaturcaraan
  • Python
Mengenai Pengarang Joe Coburn(136 Artikel Diterbitkan)

Joe adalah lulusan Sains Komputer dari University of Lincoln, UK. Dia seorang pembangun perisian profesional, dan ketika dia tidak terbang drone atau menulis muzik, dia sering didapati mengambil gambar atau menghasilkan video.

Lagi Dari Joe Coburn

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan