Jadual Kandungan
Kebaikan
PyLint akan menemuinya
Keburukan
Bahaya
Jadikan ia berfungsi untuk anda
1. Versi tetap
2. Dilumpuhkan secara lalai
3. dam
Menggunakan PyLint
Rumah pembangunan bahagian belakang Tutorial Python Kebaikan, keburukan dan bahaya PyLint

Kebaikan, keburukan dan bahaya PyLint

Apr 10, 2023 pm 12:01 PM
pylint

Kebaikan, keburukan dan bahaya PyLint

Manfaatkan PyLint sepenuhnya.

Pukul papan: PyLint sebenarnya cukup bagus!

"PyLint boleh menyelamatkan nyawa anda" adalah keterlaluan, tetapi tidak seperti yang anda fikirkan. PyLint boleh menyelamatkan anda daripada kecacatan yang sukar dicari dan kompleks. Paling teruk, ia hanya menjimatkan masa berjalan ujian. Pada tahap terbaik, ia membantu anda mengelakkan ralat yang rumit dalam pengeluaran.

Kebaikan

Saya malu untuk mengatakan betapa biasa perkara ini. Nama ujian sentiasa sangat pelik: tiada siapa mengambil berat tentang nama itu, dan selalunya nama semula jadi tidak ditemui. Contohnya, kod berikut:

def test_add_small():# Math, am I right?assert 1 + 1 == 3def test_add_large():assert 5 + 6 == 11def test_add_small():assert 1 + 10 == 11
Salin selepas log masuk

Ujian berfungsi:

collected 2 items test.py .. 2 passed
Salin selepas log masuk

Tetapi inilah perkaranya: jika anda mengatasi nama ujian, rangka kerja ujian dengan senang hati akan melangkau ujian!

Pada hakikatnya, fail ini mungkin mempunyai ratusan baris dan orang yang menambah ujian baharu mungkin tidak mengetahui semua nama. Semuanya kelihatan baik sehingga seseorang melihat dengan lebih dekat pada output ujian.

Bahagian yang paling teruk ialah, tambahan ujian dilindungi, kerosakan yang disebabkan oleh ujian dilindungi, dan masalah tindak balas rantai boleh mengambilnya mungkin mengambil masa berhari-hari, berbulan-bulan atau bahkan bertahun-tahun untuk ditemui.

PyLint akan menemuinya

Seperti rakan baik, PyLint boleh membantu anda.

test.py:8:0: E0102: function already defined line 1 (function-redefined)
Salin selepas log masuk

Keburukan

Sama seperti sitkom 90an, semakin banyak anda mengetahui tentang PyLint, semakin banyak soalan yang anda perolehi. Berikut ialah kod biasa untuk program pemodelan saham:

"""Inventory abstractions"""import attrs@attrs.defineclass Laptop:"""A laptop"""ident: strcpu: str
Salin selepas log masuk

Tetapi PyLint nampaknya mempunyai pendapatnya sendiri (mungkin dibentuk pada tahun 90-an) dan tidak takut untuk menyatakannya sebagai fakta:

$ pylint laptop.py | sed -n '/^laptop/s/[^ ]*: //p'R0903: Too few public methods (0/2) (too-few-public-methods)
Salin selepas log masuk

Bahaya

Pernah terfikir untuk menambah pendapat anda sendiri yang tidak berasas pada alat yang digunakan oleh berjuta-juta orang? PyLint mempunyai 12 juta muat turun setiap bulan.

"Jika anda terlalu memilih, orang akan menyahtanda" — Ini ialah PyLint GitHub isu 6987, dibangkitkan pada 3 Julai 2022

Untuk penambahan yang mungkin Terdapat banyak ujian positif palsu, dan sikapnya ialah... "Hmm".

Jadikan ia berfungsi untuk anda

PyLint bagus, tetapi anda perlu berhati-hati dengannya. Untuk menjadikan PyLint berfungsi untuk anda, berikut ialah tiga perkara yang saya cadangkan:

1. Versi tetap

Sematkan versi PyLint yang anda gunakan untuk mengelakkan sebarang kejutan!

ditakrifkan dalam fail ​​.toml​​ anda:

[project.optional-dependencies]pylint = ["pylint"]
Salin selepas log masuk

ditakrifkan dalam kod:

from unittest import mock
Salin selepas log masuk

Ini sepadan dengan kod berikut:

# noxfile.py...@nox.session(python=VERSIONS[-1])def refresh_deps(session):"""Refresh the requirements-*.txt files"""session.install("pip-tools")for deps in [..., "pylint"]:session.run("pip-compile","--extra",deps,"pyproject.toml","--output-file",f"requirements-{deps}.txt",)
Salin selepas log masuk

2. Dilumpuhkan secara lalai

Lumpuhkan semua semakan, dan kemudian dayakan semakan yang anda fikirkan mempunyai kadar positif palsu yang tinggi. (Bukan sekadar nisbah negatif palsu/positif palsu!)

# noxfile.py...@nox.session(python="3.10")def lint(session):files = ["src/", "noxfile.py"]session.install("-r", "requirements-pylint.txt")session.install("-e", ".")session.run("pylint","--disable=all",*(f"--enable={checker}" for checker in checkers)"src",)
Salin selepas log masuk

3. dam

Inilah dam yang saya suka. Tingkatkan ketekalan projek dan elakkan kesilapan yang jelas.

checkers = ["missing-class-docstring","missing-function-docstring","missing-module-docstring","function-redefined",]
Salin selepas log masuk

Menggunakan PyLint

Anda hanya boleh menggunakan bahagian PyLint yang bagus. Jalankannya dalam CI untuk konsistensi dan gunakan pemeriksa biasa.

Lepaskan bahagian buruk: melumpuhkan pemeriksa secara lalai.

Elak bahagian berbahaya: Versi tetap untuk mengelakkan kejutan.

Atas ialah kandungan terperinci Kebaikan, keburukan dan bahaya PyLint. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Mar 05, 2025 am 09:58 AM

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Penapisan gambar di python Penapisan gambar di python Mar 03, 2025 am 09:44 AM

Penapisan gambar di python

Cara memuat turun fail di python Cara memuat turun fail di python Mar 01, 2025 am 10:03 AM

Cara memuat turun fail di python

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Mar 10, 2025 pm 06:54 PM

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Cara Bekerja Dengan Dokumen PDF Menggunakan Python Cara Bekerja Dengan Dokumen PDF Menggunakan Python Mar 02, 2025 am 09:54 AM

Cara Bekerja Dengan Dokumen PDF Menggunakan Python

Cara Cache Menggunakan Redis dalam Aplikasi Django Cara Cache Menggunakan Redis dalam Aplikasi Django Mar 02, 2025 am 10:10 AM

Cara Cache Menggunakan Redis dalam Aplikasi Django

Memperkenalkan Toolkit Bahasa Alam (NLTK) Memperkenalkan Toolkit Bahasa Alam (NLTK) Mar 01, 2025 am 10:05 AM

Memperkenalkan Toolkit Bahasa Alam (NLTK)

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Mar 10, 2025 pm 06:52 PM

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch?

See all articles