PyLint の長所、短所、危険性
PyLint を最大限に活用しましょう。
黒板をノックしてください: PyLint は実際に優れています!
「PyLint があなたの命を救う」というのは誇張ですが、あなたが思っているほどではありません。 PyLint は、見つけるのが非常に難しい複雑な欠陥からあなたを救います。最悪の場合、テストの実行時間を節約するだけです。最良の場合、実稼働環境での複雑なエラーを回避するのに役立ちます。
利点
これがどれほど一般的であるかを言うのは恥ずかしいことです。テスト名は常に とても奇妙です : 誰も名前を気にしませんし、自然な名前が見つからないこともよくあります。たとえば、次のコード:
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
テストが有効になります:
collected 2 items test.py .. 2 passed
しかし、問題は、テストの名前をオーバーライドすると、テスト フレームワークは喜んでテストをスキップしてしまうことです。
実際には、これらのファイルには数百行が含まれる可能性があり、新しいテストを追加する人がすべての名前を知っているわけではない可能性があります。テスト出力を詳しく見るまでは、すべてが正常に見えます。
最悪の部分は、対象テストの追加、対象テストによって引き起こされる損害、および連鎖反応問題により数時間がかかる可能性があることです。発見するまでに数日、数か月、場合によっては数年かかる場合もあります。
PyLint がそれを見つけます
PyLint は、良き友人のように、あなたを助けます。
test.py:8:0: E0102: function already defined line 1 (function-redefined)
短所
90年代のホームコメディと同じように、PyLintについて学べば学ぶほど、より多くの問題が発生します。株式モデリング プログラムの通常のコードは次のとおりです:
"""Inventory abstractions"""import attrs@attrs.defineclass Laptop:"""A laptop"""ident: strcpu: str
しかし、PyLint には独自の意見 (おそらく 90 年代に形成された) があるようで、それらを事実として述べるのを躊躇しません:
$ pylint laptop.py | sed -n '/^laptop/s/[^ ]*: //p'R0903: Too few public methods (0/2) (too-few-public-methods)
危険
何百万人もの人々が使用するツールに、根拠のない自分の意見を加えることを考えたことはありますか? PyLint は月間 1,200 万ダウンロードされています。
「こだわりすぎると、人々はチェックを外します」 — これは、2022 年 7 月 3 日に提起された PyLint GitHub 問題 6987 です。
追加の可能性があるものについては、次のとおりです。テストでは多くの偽陽性があり、その態度は...「eh」です。
あなたのために使えるようにしましょう
PyLint は優れていますが、取り扱いには注意が必要です。 PyLint を機能させるために、私が推奨する 3 つのこと:
1. 修正バージョン
予期せぬ事態を避けるために、使用する PyLint のバージョンを修正してください。
.toml
ファイルで定義します:
[project.optional-dependencies]pylint = ["pylint"]
コードで定義します:
from unittest import mock
これは次のコードに対応します:
# 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",)
2. デフォルトの禁止
すべてのチェックを無効にし、誤検知率が高いと思われるチェックを有効にします。 (偽陰性/偽陽性の比率だけではありません!)
# 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",)
3. チェッカー
以下は私が気に入っているチェッカーです。プロジェクトの一貫性を向上させ、明らかな間違いを回避します。
checkers = ["missing-class-docstring","missing-function-docstring","missing-module-docstring","function-redefined",]
PyLint の使用
PyLint は良い部分にのみ使用できます。一貫性を保つために CI で実行し、一般的なチェッカーを使用します。
悪い部分、つまりチェッカーをデフォルトで無効にする部分は破棄してください。
危険な部分を避ける: 予期せぬ事態を避けるために修正されたバージョン。
以上がPyLint の長所、短所、危険性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











このチュートリアルでは、Pythonを使用してZIPFの法則の統計的概念を処理する方法を示し、法律の処理時にPythonの読み取りおよび並べ替えの効率性を示します。 ZIPF分布という用語が何を意味するのか疑問に思うかもしれません。この用語を理解するには、まずZIPFの法律を定義する必要があります。心配しないでください、私は指示を簡素化しようとします。 ZIPFの法則 ZIPFの法則は単に意味します。大きな自然言語のコーパスでは、最も頻繁に発生する単語は、2番目の頻繁な単語のほぼ2倍の頻度で表示されます。 例を見てみましょう。アメリカ英語の茶色のコーパスを見ると、最も頻繁な言葉は「thであることに気付くでしょう。

この記事では、Pythonライブラリである美しいスープを使用してHTMLを解析する方法について説明します。 find()、find_all()、select()、およびget_text()などの一般的な方法は、データ抽出、多様なHTML構造とエラーの処理、および代替案(SEL

ノイズの多い画像を扱うことは、特に携帯電話や低解像度のカメラの写真でよくある問題です。 このチュートリアルでは、OpenCVを使用してPythonの画像フィルタリング手法を調査して、この問題に取り組みます。 画像フィルタリング:強力なツール 画像フィルター

PDFファイルは、クロスプラットフォームの互換性に人気があり、オペレーティングシステム、読み取りデバイス、ソフトウェア間でコンテンツとレイアウトが一貫しています。ただし、Python Plansing Plain Text Filesとは異なり、PDFファイルは、より複雑な構造を持つバイナリファイルであり、フォント、色、画像などの要素を含んでいます。 幸いなことに、Pythonの外部モジュールでPDFファイルを処理することは難しくありません。この記事では、PYPDF2モジュールを使用して、PDFファイルを開き、ページを印刷し、テキストを抽出する方法を示します。 PDFファイルの作成と編集については、私からの別のチュートリアルを参照してください。 準備 コアは、外部モジュールPYPDF2を使用することにあります。まず、PIPを使用してインストールします。 ピップはpです

このチュートリアルでは、Redisキャッシングを活用して、特にDjangoフレームワーク内でPythonアプリケーションのパフォーマンスを向上させる方法を示しています。 Redisのインストール、Django構成、およびパフォーマンスの比較をカバーして、Beneを強調します

この記事では、深い学習のためにTensorflowとPytorchを比較しています。 関連する手順、データの準備、モデルの構築、トレーニング、評価、展開について詳しく説明しています。 特に計算グラップに関して、フレームワーク間の重要な違い

このチュートリアルでは、Python 3にカスタムパイプラインデータ構造を作成し、機能を強化するためにクラスとオペレーターのオーバーロードを活用していることを示しています。 パイプラインの柔軟性は、一連の機能をデータセットに適用する能力にあります。

データサイエンスと処理のお気に入りであるPythonは、高性能コンピューティングのための豊富なエコシステムを提供します。ただし、Pythonの並列プログラミングは、独自の課題を提示します。このチュートリアルでは、これらの課題を調査し、グローバルな承認に焦点を当てています
