-
Pythonのデータクラス(dataclasses)
dataclassesは、バージョン3.7以降にPythonの標準ライブラリに追加された新しいモジュールです。コンストラクターマジックメソッド__init__()、文字列表現メソッド__repr __()、ユーザー定義クラスの==演算子(およびその他いくつか)をオーバーロードする__eq __()メソッドを自動的に生成する@dataclassデコレーターを定義します。 データクラスデコレータには次の署名があります dataclass(init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False) すべ
-
Pythonを使用した仮想環境の作成
Pythonベースのアプリケーションを開発する際には、特定のバージョンのPythonパッケージが必要になる場合があります。ただし、同じパッケージのこのバージョンがシステム全体で使用するためにインストールされている場合は、他のアプリケーションの要件と競合している可能性があります。したがって、互換性の問題を解決するために、目的ごとにサイドバイサイド環境を用意することが望まれます。 仮想環境では、Pythonパッケージをグローバルにインストールするのではなく、特定のアプリケーションの隔離された場所にインストールできます。 Pythonの標準ライブラリのvenvモジュールは、仮想環境を作成するため
-
Pythonがpipインストーラーをブートストラップする
Pythonの標準ディストリビューションに組み込まれているモジュールとパッケージに加えて、サードパーティの開発者からの多数のパッケージがPython Package Index(https://pypi.org/)と呼ばれるPythonパッケージリポジトリにアップロードされます。ここからパッケージをインストールするには、 pipユーティリティが必要です。pipツールは独立したプロジェクトですが、Python 3.4以降、Pythonディストリビューションでブートストラップされています。 surepipモジュールは、Pythonの既存のインストールでpipをブートストラップするためのサポートを
-
Pythonの低レベルネットワークインターフェース(ソケット)
Pythonの標準ライブラリの「socket」モジュールは、サーバーとクライアントマシンがオペレーティングシステム上でソケットエンドポイントを使用して通信する方法を定義します。 socket APIには、コネクション型ネットワークプロトコルとコネクションレス型ネットワークプロトコルの両方の関数が含まれています。 ソケットは、双方向通信リンクのエンドポイントです。 IPアドレスとポート番号が特徴です。接続を開始するには、両端のソケットを適切に構成する必要があります。これにより、着信メッセージをリッスンし、クライアントサーバー環境で応答を送信できるようになります。 socketモジュールのso
-
Python低レベルスレッドAPI
Pythonライブラリの「_thread」モジュールは、グローバルデータスペースを共有する複数のスレッドを持つ軽量プロセスを操作するための低レベルのインターフェイスを提供します。同期のために、このモジュールでは単純なロック(ミューテックスまたはバイナリセマフォとも呼ばれます)が定義されています。 「スレッド化」組み込みモジュールは、このモジュールの上に構築された高レベルのスレッド化APIを提供します。 start_new_thread() このモジュールレベルの関数は、現在のプロセスで新しいスレッドを開くために使用されます。この関数は、関数オブジェクトを引数として取ります。この関数は、新し
-
Pythonステートメントの実行をトレースまたは追跡する(トレース)
Pythonライブラリの「trace」モジュールの関数は、プログラム実行のトレースと注釈付きのステートメントカバレッジを生成します。また、呼び出し元の関係を生成することにより、実行中に呼び出された関数を一覧表示する関数もあります。 次の2つのPythonスクリプトは、トレースモジュールの機能を示す例として使用されています。 #myfunctions.py import math def area(x): a = math.pi*math.pow(x,2) return a def factorial(x): if x==1: return 1 else:
-
Pythonライブラリのバイトコンパイル
Pythonはインタプリタベースの言語です。ただし、スクリプト(.py拡張子)が実行されると、内部でソースコードがバイトコードにコンパイルされ、その後、バイトコードバージョンが自動的に削除されます。モジュール(プリコンパイルされた組み込みモジュールを除く)が最初にインポートされると、コンパイルされたバージョンも自動的にビルドされますが、拡張子が.pycで__pycache__フォルダーに保存されます。同じモジュールを再度インポートするための後続の呼び出しは、モジュールを再コンパイルせず、代わりにすでにビルドされたモジュールを使用します。 ただし、拡張子が.pyのPythonスクリプトファイル
-
Pythonクラスブラウザのサポート
pyclbr Pythonライブラリのモジュールは、Pythonモジュールで定義された関数、クラス、およびメソッドに関する情報を抽出します。情報は、モジュールをインポートするのではなく、Pythonソースコードから抽出されます。 このモジュールはreadmodule()を定義します 辞書マッピングモジュールレベルのクラス名をクラス記述子に返す関数。この関数は、モジュール名をパラメーターとして受け取ります。パッケージ内のモジュールの名前である可能性があります。その場合、pathはsys.pathの前に付けられた一連のディレクトリパスであり、モジュールのソースコードを見つけるために使用されます
-
ZipアーカイブからのPythonインポートモジュール(zipimport)
zipimportモジュールを使用すると、ZIP形式のアーカイブからPythonモジュールとパッケージをインポートできます。このモジュールでは、sys.pathのアイテムをZIPファイルアーカイブに名前を付ける文字列にすることもできます。どのファイルもZIPアーカイブに存在する可能性がありますが、インポートできるのはファイル.pyと.pycのみです。動的モジュールのZIPインポートは許可されていません。 このモジュールの機能は、最初に「newdir」ディレクトリにファイルのzipアーカイブを作成することによって説明されます。次のファイルはnewdirディレクトリに存在すると想定されています
-
Pythonの抽象基本クラス(abc)
クラスに1つ以上の抽象メソッドが含まれている場合、そのクラスは抽象クラスと呼ばれます。抽象メソッドは宣言されているメソッドですが、実装は含まれていません。抽象クラスはインスタンス化されない場合があり、その抽象メソッドはそのサブクラスによって実装される必要があります。 抽象基本クラスは、hasattr()のような他の手法が不器用であるか、微妙に間違っている場合(たとえば、マジックメソッドを使用する場合)にインターフェイスを定義する方法を提供します。 ABCは、仮想サブクラスを導入します。これは、クラスから継承しないが、isinstance()およびissubclass()関数によって認識される
-
Pythonバイナリデータサービス
Pythonライブラリの構造体モジュールのプロビジョニングは、Cタイプの構造体とPythonバイトオブジェクト間の変換を実行するのに役立ちます。これは、モジュールレベルの関数と、structモジュールで定義されているStructクラスとそのメソッドによって実現できます。 変換関数はフォーマット文字列を使用します。フォーマット文字列で使用されるバイト順序、サイズ、および配置は、次の表のように文字をフォーマットすることによって決定されます キャラクター バイトオーダー サイズ 配置 @ ネイティブ ネイティブ ネイティブ = ネイティブ
-
Pythonプログラムでの警告制御
警告は、プログラムのエラーとは異なります。エラーが発生した場合、Pythonプログラムは即座に終了します。一方、警告は致命的ではありません。特定のメッセージが表示されますが、プログラムは続行されます。警告は、厳密には例外ではない特定の条件をユーザーに警告するために発行されます。通常、キーワード/関数/クラスなどの特定のプログラミング要素の非推奨の使用法が見つかった場合に警告が表示されます。 警告メッセージは、Pythonの標準ライブラリの「warning」モジュールで定義されているwarn()関数によって表示されます。警告は、実際には組み込みのクラス階層のExceptionのサブクラスです。
-
Pythonガベージコレクターインターフェイス(gc)
自動ガベージコレクションは、Pythonの重要な機能の1つです。ガベージコレクタメカニズムは、プログラムで使用されなくなったオブジェクトが占有しているメモリを再利用しようとします。 Pythonは、ガベージコレクションに参照カウントメカニズムを使用します。 Pythonインタープリターは、オブジェクトが他のオブジェクトによって参照された回数をカウントします。オブジェクトへの参照が削除されると、オブジェクトのカウントがデクリメントされます。参照カウントがゼロになると、オブジェクトメモリが再利用されます。 通常、このメカニズムは自動的に実行されます。ただし、プログラムで特定の状況が発生した場合
-
Pythonスクリプトで使用されるモジュールの検索(modulefinder)
modulefinderモジュールのModuleFinderクラスは、特定のスクリプトによってインポートされたモジュールのセットを判別できます。このモジュールには、コマンドラインインターフェイスとプログラムインターフェイスがあります。 機能のデモンストレーションには、次のスクリプトを使用してください #modfinder.py import hello try: import trianglebrowser import nomodule,mymodule except ImportError: pass コマンドラインインターフェイス 次のコマンドは、見つかったモジュー
-
PythonでSimPyを使用した離散イベントシミュレーションの基本
SimPy(「Blimpie」と韻を踏む)は、プロセス指向の離散イベントシミュレーション用のPythonパッケージです。 インストール SimPyをインストールする最も簡単な方法は、pipを使用することです: pip install simpy そして、あなたが得るかもしれない出力は次のようになります、 執筆時点では、simpy-3.0.11はSimPyの最新バージョンであり、以下のすべての例で使用します。 SimPyがすでにインストールされている場合は、pipの–Uオプションを使用してアップグレードします。 pip install –U simpy 注 :Pyt
-
PythonとRuby、どちらを選択しますか?
最初に頭に浮かぶのは、なぜこれら2つの言語だけを比較するのかということです。これは、両方が解釈され、オブジェクト指向の哲学と非常に巨大なコミュニティがサポートするアジャイル言語であるためかもしれません。ただし、両方の言語はいくつかのアイデア、構文要素を共有し、ほぼ同じ機能を備えていますが、2つのコミュニティには共通点がありません。 どちらの言語も開発者のコミュニティで非常に人気があります(これも比較する理由の1つです)。以下は、開かれたプルリクエストに基づくGitHubで2018年に最も人気のある言語のトップ10です- 開かれたプルリクエストに基づくGitHubで最も人気のある言語トップ
-
PythonTkinterを使用した簡単な登録フォーム
Tkinterは、GUI(グラフィカルユーザーインターフェイス)を開発するためのPythonライブラリです。 tkinterライブラリを使用してUI(ユーザーインターフェイス)のアプリケーションを作成し、ウィンドウやその他すべてのグラフィカルユーザーインターフェイスを作成します。 python 3.x(推奨)を使用している場合、TkinterにはPythonが標準パッケージとして付属しているため、使用するために何もインストールする必要はありません。 Tkinterで登録フォームを作成する前に、まずTkinterで簡単なGUIアプリケーションを作成しましょう。 簡単なGUIアプリケーションの
-
Pythonでgmplotパッケージを使用してGoogleマップをプロットしますか?
Googleマップで地理座標を描く方法はたくさんあります。ただし、ローカルファイルに保存する場合は、gmplotというPythonモジュールを使用するのがより良い方法の1つです。 Pythonライブラリgmplotを使用すると、Googleマップにデータをプロットできます。 gmplotにはmatplotlibのようなインターフェースがあり、HTMLとJavaScriptを生成して、Googleマップ上にすべての追加データを配信します。 インストール gmplotがまだインストールされていない場合は、pipを使用してgmplotを簡単にインストールできます- pip install gmp
-
PythonでAnaconda環境にパッケージを追加する
既存のanaconda環境にパッケージを追加する方法は複数あります。 方法1 −一般的なアプローチの1つは、「Anaconda Navigator」を使用して、anaconda環境にパッケージを追加することです。 「AnancondaNavigator」を開くと、ホームページは次のようになります- [ホーム]タブのすぐ下にある[環境]タブに移動し、そこからすべてのパッケージがインストールされているものとインストールされていないものを確認できます。 anacondaナビゲーターを使用してパッケージをインストールするのは非常に簡単です。必要なパッケージを検索し、パッケージを選択し、
-
Pythonでの探索的データ分析
データ分析の場合、探索的データ分析(EDA)を最初のステップにする必要があります。探索的データ分析は、次のことに役立ちます- データセットへの洞察を与えるため。 基礎となる構造を理解します。 重要なパラメータとそれらの間にある関係を抽出します。 基礎となる仮定をテストします。 サンプルデータセットを使用したEDAの理解 Pythonを使用してEDAを理解するために、任意のWebサイトから直接またはローカルディスクからサンプルデータを取得できます。ワイン品質データセットの赤い変種が公開されているUCIMachineLearning Repositoryからサンプルデ