Berbagi teknologi

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 14 Implementasi Python pada kelas dan objek - Bisakah Anda membedakan antara metode statis dan metode kelas suatu kelas?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 14 Implementasi Python pada kelas dan objek - Bisakah Anda membedakan antara metode statis dan metode kelas suatu kelas?

Ringkasan:

Artikel ini terutama memperkenalkan metode kelas dan metode statis di kelas dan objek dengan Python, serta definisi, karakteristik, skenario aplikasi dan metode penggunaan metode kelas dan metode statis, dan membandingkan keduanya.

Tautan asli:

Blog FreakStudio

Direkomendasikan di masa lalu:

Mungkin tutorial pemrograman berorientasi objek yang paling cocok untuk memulai di Internet: Implementasi Python - yang harus dilihat oleh para penggemar embedded!

Tutorial pemrograman berorientasi objek yang paling cocok di Internet untuk memulai: 00 Pengenalan metode desain berorientasi objek

Tutorial pemrograman berorientasi objek yang paling cocok di Internet untuk memulai: 01 Konsep dasar pemrograman berorientasi objek

Tutorial pemrograman berorientasi objek yang paling cocok di Internet untuk memulai: 02 Implementasi kelas dan objek dengan Python - menggunakan Python untuk membuat kelas

Tutorial pemrograman berorientasi objek yang paling cocok untuk memulai di Internet: 03 Implementasi Python pada kelas dan objek - menambahkan atribut ke kelas khusus

Tutorial pemrograman berorientasi objek yang paling cocok untuk memulai di Internet: 04 Implementasi kelas dan objek dengan Python - menambahkan metode ke kelas khusus

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 05 Implementasi kelas dan objek Python - tag kode PyCharm

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 06 Implementasi kelas dan objek dengan Python - enkapsulasi data kelas khusus

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 07 Implementasi Python pada kelas dan objek - anotasi tipe

Tutorial pemrograman berorientasi objek yang paling cocok di Internet untuk memulai: 08 Implementasi kelas dan objek dengan Python - @property dekorator

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 09 Implementasi Python terhadap kelas dan objek - hubungan antar kelas

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: 10 implementasi Python pada kelas dan objek - pewarisan kelas dan prinsip substitusi Liskov

Tutorial pemrograman berorientasi objek yang paling cocok untuk memulai di Internet: Implementasi Python dari 11 kelas dan objek - pemanggilan subkelas metode kelas induk

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: Implementasi Python dari 12 kelas dan objek - Python menggunakan modul logging untuk menampilkan log program yang berjalan

Tutorial pemrograman berorientasi objek yang paling cocok untuk pemula di Internet: Implementasi Python dari 13 kelas dan objek - Instalasi dan penggunaan artefak pembacaan kode visual Sourcetrail

Konten yang lebih menarik untuk ditonton:

Analisis singkat sistem debugging CM3

Setelah setengah bulan bekerja, ringkasan tumpukan teknologi tertanam dirilis

Rahasia pencak silat pemenang kompetisi: 05. Cara membagi isi kerja dan pembelajaran tim penghargaan nasional dalam kompetisi komputer elektronik

Rahasia seni bela diri pemenang kompetisi: 04 Panduan cepat dan wajib dibaca untuk pengembangan tertanam dalam kompetisi elektronik

Rahasia seni bela diri pemenang kompetisi: 03 Pilihan kreatif yang baik - prasyarat paling penting untuk memenangkan penghargaan nasional

Rahasia seni bela diri pemenang kompetisi: 02 Rahasia Penghargaan Nasional - Proses memulai cepat untuk kompetisi komputer mahasiswa, wajib dibaca oleh pemula

Rahasia pencak silat pemenang kompetisi: 01 Bagaimana Anda memandang fenomena “bergulir”, “peristiwa leluhur” dan “mencari koneksi” dalam kompetisi perguruan tinggi masa kini?

Rahasia seni bela diri pemenang kompetisi: 00 Kompetisi mata pelajaran-topik yang tidak dapat dihindari oleh mahasiswa teknik.

"Rahasia seni bela diri" dari kompetisi elektronik dan komputer - Kompetisi Elektronik Kompetisi Desain Optoelektronik Kompetisi Desain Komputer Kompetisi Desain Chip dan Sistem Tertanam, semua yang Anda butuhkan ada di sini!

Dokumentasi dan akuisisi kode:

Anda dapat mengunjungi link berikut untuk mendownload dokumennya:

https://github.com/leezisheng/Dok

gambar

Dokumen ini terutama memperkenalkan cara menggunakan Python untuk pemrograman berorientasi objek, dan mengharuskan pembaca untuk memiliki pemahaman dasar tentang sintaksis Python dan pengembangan mikrokontroler. Dibandingkan dengan blog atau buku lain yang menjelaskan pemrograman berorientasi objek Python, dokumen ini lebih detail dan berfokus pada aplikasi komputer host tertanam. Dokumen ini menggunakan pengiriman dan penerimaan data port serial umum, pemrosesan data, gambar grafik dinamis, dll dan komputer yang lebih rendah sebagai contoh aplikasi. , dan menggunakan perangkat lunak kode Sourcetrail untuk membaca kode secara visual untuk memfasilitasi pemahaman pembaca.

Tautan kode contoh yang relevan adalah sebagai berikut:https://github.com/leezisheng/Demo-OOP-Python

teks

metode statis

Mengambil kelas SensorClass sebagai contoh, apa yang disebut metode InitSensor, StartSensor, StopSensor, dll. yang didefinisikan dalam kelas tersebut adalahMetode objek, artinya, semua metode ini adalah pesan yang dikirim ke objek, dan semuanya memanggil properti di objek.Faktanya, metode yang kita tulis di kelas tidak harus berupa metode objek. Ada beberapa metode di kelas yang tidak perlu memanggil atribut objek. Misalnya, dalam metode InitSensor, kita mungkin perlu menentukan apakah metode saat ini Port COM ada. Jelas, metode ini berbeda dari objek Sensor yang tidak relevan.

Contoh lain, kita mendefinisikan kelas "Segitiga", membuat segitiga dengan melewatkan tiga panjang sisinya, dan memberikan metode untuk menghitung keliling dan luas. Namun, ketiga panjang sisinya mungkin tidak dapat membuat objek segitiga, jadi pertama-tama kita dapat menulis metode A untuk memverifikasi apakah tiga panjang sisi dapat membentuk segitiga. Metode ini jelas bukan metode objek, karena objek segitiga belum dibuat ketika metode ini dipanggil (karena tidak diketahui apakah ketiga sisinya dapat membentuk segitiga. membentuk segitiga), jadi metode ini adalah kelas Segitiga tetapi bukan objek segitiga.kita bisa gunakanmetode statisUntuk mengatasi masalah seperti ini, kodenya adalah sebagai berikut.

@staticmethod
    _# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
    def IsTrueID(id:int = 0):
        if id >= 0 and id <= 99:
            return True
        else:
            return False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Metode statis sebenarnya adalah fungsi yang telah kita pelajari. Satu-satunya perbedaan antara metode statis dan fungsi adalah bahwa metode statis didefinisikan dalam ruang kelas (ruang nama kelas), sedangkan fungsi didefinisikan dalam ruang tempat program berada (ruang nama global). . Metode statis tidak memiliki parameter khusus seperti self dan cls, sehingga interpreter Python tidak mengikat kelas atau objek apa pun ke parameter yang dikandungnya. Oleh karena itu, tidak ada atribut kelas dan metode kelas yang dapat dipanggil dalam metode statis kelas tersebut. Di sini kita mendefinisikan metode statis IsPort untuk menentukan apakah nomor ID sensor sudah benar. Metode statis perlu dimodifikasi dengan @staticmethod. Pemanggilan metode statis dapat menggunakan nama kelas atau objek kelas, misalnya:

_    # 设置ID号_
    id = 1
_    # 判断ID号是否符合格式_
    if SensorClass.IsTrueID(id):
        s = SensorClass()
    else:
        print("Sensor Init False")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

gambar

metode kelas

Mirip dengan metode statis, Python juga dapat mendefinisikan metode kelas di kelas. Parameter pertama dari metode kelas secara konvensional diberi nama cls, yang mewakili objek informasi yang terkait dengan kelas saat ini (kelas itu sendiri juga merupakan objek, dan dalam beberapa hal, ini juga merupakan objek. tempat Disebut objek metadata kelas), melalui parameter ini kita dapat memperoleh informasi terkait kelas dan membuat objek kelas. Python secara otomatis akan mengikat kelas itu sendiri ke parameter cls (perhatikan bahwa kelas tersebut tidak terikat ke objek kelas ) . Dengan kata lain, saat kita memanggil metode kelas, kita tidak perlu meneruskan parameter untuk parameter cls secara eksplisit.

Metode kelas perlu dimodifikasi menggunakan pengubah @classmethod. Kami mendefinisikan metode kelas MasterInfo di MasterClass. Kode contohnya adalah sebagai berikut:

@classmethod
    def MasterInfo(cls):
        print("Info : "+str(cls))

print(MasterClass.MasterInfo())
  • 1
  • 2
  • 3
  • 4
  • 5

gambar

Masukkan deskripsi gambar di sini