Apakah Anda mencoba memahami konsep metode statis dan metode kelas dengan Python? Show
Metode statis tidak dapat mengakses atribut kelas atau atribut instance. Ini setara dengan fungsi normal tetapi merupakan bagian dari kelas karena memiliki kesamaan konteks logis yang sama. Metode kelas tidak dapat mengakses atribut instance dan sering digunakan sebagai metode pabrik Dalam tutorial ini akan menjadi jelas bagi Anda bagaimana Anda dapat menggunakan metode statis dan kelas dibandingkan dengan metode instance standar Mari kita koding Daftar isi Apa itu Metode Statis di Python?Metode statis adalah metode yang dapat Anda panggil tanpa membuat instance kelas. Ini seperti fungsi standar di dalam kelas. Metode statis bertindak sebagai metode utilitas untuk kelas Untuk memahami bagaimana tampilan metode statis, mari kita mulai dari kelas Python yang merepresentasikan film Kelas ini memiliki konstruktor dan metode instance dasar yang mencetak deskripsi singkat tentang sebuah film
Ketika Anda mendefinisikan metode instance di kelas, metode itu menerima self sebagai argumen pertama di mana self adalah instance dari kelas tempat metode itu dipanggil Perhatikan bahwa dalam metode contoh kami juga mencetak nilai diri sehingga saya dapat menunjukkan kepada Anda apa yang ada di dalamnya Sekarang buat instance dari kelas ini dan panggil metodenya get_description() pada contoh itu. _Dari output Anda dapat melihat bahwa self adalah objek Movie, atau dengan kata lain, turunan dari kelas Movie Dan sekarang buat metode instance lain yang disebut get_years_from_release() yang akan memberi tahu kita jumlah tahun yang telah berlalu sejak tanggal rilis sebuah film
Catatan. ingat untuk mengimpor modul datetime jika tidak, Anda akan melihat pengecualian "nama tidak ditentukan". Mari gunakan metode ini untuk mencetak pesan yang memberitahukan berapa umur film kita…
Itu keren Sekarang, mari kita lakukan percobaan kecil… Kami akan menambahkan dekorator @staticmethod ke metode ini dan mencoba menjalankannya lagiKami mendapatkan kembali kesalahan berikut _Penyebab kesalahan ini adalah metode instance, ketika dipanggil, secara implisit melewatkan instance sebagai parameter mandiri Tapi hal yang sama tidak terjadi saat Anda mendekorasi metode dengan @staticmethod Itu karena… Metode statis tidak spesifik untuk instance kelas dan itulah mengapa parameter self tidak berlaku untuknya Metode statis tidak menerima diri sebagai argumen pertama, itu berperilaku seperti fungsi sederhana dengan satu-satunya perbedaan bahwa itu adalah bagian dari kelasBerdasarkan ini kami akan
Kali ini output dari metode ini benar _Catatan. di sini kami harus melewati film. release_year ke metode statis sementara sebelumnya, dalam metode instance, tahun rilis secara otomatis dibaca dari instance menggunakan self. tahun rilis Dan di bawah ini Anda dapat melihat bahwa kita juga dapat memanggil metode statis menggunakan kelas, bukan instance Keluaran tidak berubah
Alasan mengapa Anda mendefinisikan metode statis di kelas adalah karena metode tersebut secara logis terkait dengan kelas itu sendiri Begini cara kode kita sejauh ini _Dapatkah Metode Statis Mengakses Atribut Instance?Ini adalah sesuatu yang telah kita lihat di bagian sebelumnya… Tapi pengulangan bagus untuk memastikan konsep ini jelas Metode statis di Python tidak dapat mengakses atribut instance karena, berbeda dengan metode instance, metode tersebut tidak menerima self sebagai argumen Pada bagian selanjutnya saya akan menunjukkan kepada Anda jenis metode lain yang dapat Anda buat di kelas Python Anda, metode yang berbeda dari metode instan atau metode statis Apa itu Metode Kelas di Python?Jenis metode lain yang bisa Anda buat di kelas Python adalah metode kelas Biarkan saya memberi tahu Anda lebih banyak tentang itu … Metode kelas adalah metode yang secara implisit menerima kelas sebagai argumen pertama. Metode kelas umumnya digunakan sebagai metode pabrik. Dengan kata lain mereka digunakan untuk membuat instance kelas yang mirip dengan apa yang dilakukan oleh konstruktor kelas Metode kelas menerima cls (kelas) sebagai argumen pertama seperti halnya metode instan menerima diri (instance kelas) sebagai argumen pertama Berikut adalah tampilan metode kelas _Mari kita coba membuat metode kelas yang mirip dengan apa yang telah kita lakukan di bagian sebelumnya dengan metode statis Tetapi sebelum melakukan itu, kita akan menambahkan atribut instance lain ke kelas kita. genre filmnya Ini adalah kode yang diperbarui ... _0Coba buat instance dan panggil kedua metode untuk memastikan kode ini berfungsi _1Mari tambahkan metode kelas yang bisa kita gunakan untuk membuat film aksi… _2Perhatikan bahwa metode yang telah kita buat menggunakan dekorator @classmethod Kami juga mencetak nilai cls untuk membandingkannya dengan nilai diri dalam keluaran kami Panggil metode kelas menggunakan nama kelas Film _3Kode berfungsi dengan baik Seperti yang Anda lihat, kami dapat membuat instance film menggunakan metode kelas baru alih-alih konstruktor Juga, dapatkah Anda melihat perbedaan antara nilai cls dan self? Argumen cls adalah kelas yang memanggil metode kelas. Diri Argumen adalah turunan dari kelas itu (atau objek). Menggunakan cls dan self adalah konvensi penamaan standar di seluruh pengembang Python tetapi itu bukan sesuatu yang dipaksakan oleh juru bahasa Python. Anda dapat memanggil mereka secara berbeda tetapi ini akan membuat kode Anda lebih sulit dibaca oleh pengembang lain Kapan Menggunakan Metode Statis vs Fungsi di PythonAnda mungkin bertanya-tanya… Mengapa Anda mendefinisikan metode statis di kelas padahal sebenarnya itu bisa menjadi fungsi dasar Python? Lagipula itu tidak menerima argumen khusus kelas atau instance apa pun seperti cls atau self Bisakah kita mengganti metode statis dengan fungsi? Suatu fungsi dapat menggantikan metode statis, dan ada beberapa skenario yang lebih masuk akal untuk menggunakan suatu fungsi. Misalnya, jika metode statis sangat umum sehingga dapat relevan dengan konteks beberapa kelas. Dalam hal ini bisa menjadi fungsi terpisah yang dipanggil oleh masing-masing kelas saat dibutuhkan Juga… Anda akan mendefinisikan metode statis di kelas alih-alih menggunakan fungsi jika metode itu sangat spesifik untuk apa yang dilakukan kelas Anda sehingga lebih masuk akal untuk menyimpannya di kelas Sebagai contoh… Mari ambil kode terbaru kita dan ubah info metode statis menjadi fungsi untuk melihat cara kerjanya _4Pindahkan metode statis di luar kelas dan hapus dekorator @staticmethod Kode menjadi… _5Dan terakhir mari kita panggil fungsi ini setelah membuat instance dari kelas Movie _6Bekerja dengan baik Bisakah Metode Statis Diwarisi dengan Python?Saya ingin tahu apakah kita dapat mewarisi metode statis di dalam kelas anak Mari kita verifikasi… Mulai dari versi sederhana dari kelas kami sebelumnya _7Kami ingin memverifikasi apakah metode statis dapat diwariskan Jadi mari kita tentukan kelas baru tanpa implementasi disebut FantasyMovie yang mewarisi kelas Movie. _8Kemudian buat instance dari kelas ini Mari kita lihat apakah kita dapat memanggil metode statis dari kelas induk get_years_from_release() dan jika kita mendapatkan kembali hasil yang benar _9Kami melakukannya Ini berarti bahwa… Metode statis diwarisi oleh subkelas di PythonBisakah Metode Kelas Diwarisi dengan Python?Mari kita lakukan pengujian serupa dengan yang telah kita lakukan di bagian sebelumnya, tetapi kali ini dengan metode kelas Mulailah dengan kelas yang hanya memiliki konstruktor dan metode kelas 0Kemudian gunakan kelas anak yang sama yang telah kita buat sebelumnya… _8Dan panggil metode kelas menggunakan subkelas ini 2Seperti yang Anda lihat, kami telah berhasil membuat instance meskipun saat ini kami sedang menggabungkan dua genre film. Fantasi dan Aksi Bagaimanapun, ini hanyalah sebuah contoh untuk menunjukkan kepada Anda bahwa Anda dapat memanggil metode kelas dari kelas anak KesimpulanMari rekap bagaimana metode instance, metode kelas, dan metode statis berbeda satu sama lain berdasarkan argumen pertama mereka
Dan sekarang saatnya bagi Anda untuk mulai menggunakan metode ini dalam kode Anda. 🙂 Terus menulis kode dan terus belajar Pos terkaitKesalahan Kunci Python. Bagaimana Anda Bisa Memperbaikinya dengan Cepat? File Gitigore Untuk Proyek Python Anda. Seperti apa kelihatannya? Temukan Nilai Minimum dan Maksimum dalam Kamus Python [Langkah demi Langkah] Claudio Sabato Saya Pimpinan Teknologi, Insinyur Perangkat Lunak, dan Pelatih Pemrograman. Saya ingin membantu Anda dalam perjalanan Anda untuk menjadi Pengembang Super Apa saja 3 jenis metode dalam Python?Pada dasarnya ada tiga jenis metode dalam Python. . Metode Instance Metode Kelas Metode Statis Apa perbedaan antara metode instance dan metode statis?Metode Instance adalah metode yang membutuhkan objek dari kelasnya untuk dibuat sebelum dapat dipanggil. Metode statis adalah metode di Java yang dapat dipanggil tanpa membuat objek kelas. Metode statis dideklarasikan dengan kata kunci statis. Metode instan tidak dengan kata kunci statis
Apa perbedaan antara CLS dan self Python?diri sendiri vs cls
. Jika metode yang dibuat adalah metode instance maka kata yang dicadangkan self harus digunakan, tetapi jika metode tersebut adalah metode kelas maka kata kunci cls harus digunakan.
Apakah metode statis lebih cepat Python?1 Jawaban. Simpan jawaban ini. Tampilkan aktivitas di postingan ini. Tampaknya metode statis sedikit lebih cepat (kemungkinan hanya karena tidak perlu meneruskan argumen ke fungsi sama sekali), tetapi kita berbicara tentang . |