いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。

python

Pythonメモ-59 (dockerでpython 3.7のdataclassを試す) (dataclass, PEP 526, docker, rc-alpine, python 3.7.0a4)

概要 前回、python 3.7 で追加される Data Classes についての情報をメモしたので devlights.hatenablog.com ついでにちょっと試してみようと思います。 docker で試す でも、python 3.7 はまだアルファ版です。いきなり自分の環境に入れたりするのは嫌です…

Pythonメモ-58 (3.7で追加される Data Classes についての情報) (dataclass, PEP 526, A brief tour of Python 3.7 data classes)

概要 Python 3.7 (現在アルファ版公開中)で追加になる Data Classes についての情報メモ。 恐らく、みんな欲しかった機能ではないでしょうか。名前付きタプルも便利ですが、Mutableなデータクラスがサクッと定義できるのは楽です。 Hacker Noonさんで、A b…

Pythonメモ-57 (サブクラスで __init__ を定義する場合の注意点) (class, super, __init__, Never code a method that just delegates to the superclass)

概要 たまに間違えてバグ作ってしまったりしてるので、忘れないようメモメモ。 python で サブクラスの __init__ 定義する場合に super().__init__() としていないと、親クラスの__init__() が呼ばれないよって話しです。 他の言語の場合 (例えば C#) C#の場…

Pythonメモ-55 (pygments でシンタックスハイライトさせて遊ぶ) (pygments, pygmentize, syntax highlight)

概要 何かのライブラリをインストールしようとすると、ちょこちょこ見る名前って結構あります。 私の場合、pygments ってライブラリがよく出てきていたのですが これが何なのか知りませんでした(恥 Welcome! — Pygments とっても有名なライブラリなんですね…

最近の VSCode の Python サポート具合をメモ (Visual Studio Code, Python, conda, pytest)

概要 前回、VSCode の Java サポート具合について devlights.hatenablog.com 書いたので、ついでなので、Python の方も調べてみた。 私自身は、普段は PyCharm で作業しているので、 VSCode で書くのは、たまに殴り書きのスクリプト書くときぐらいでした。 M…

Kotlinのめっちゃ分かりやすかった記事 (Qiita, Java, Kotlin)

概要 QiitaでKotlinについて、すごく分かりやすい記事を見つけたので、忘れないようメモメモ。 公開してくださった方に感謝。 qiita.com qiita.com qiita.com Javaプログラマ向けと銘打ってありますが、Javaやってなくても充分分かります。 Kotlin勉強せなっ…

JetBrains の IDE を日本語化 (Pleiades, IntelliJ IDEA, PyCharm, Rider)

概要 JetBrains さんの 各 IDE を普段めっちゃ使っているのですが、日本語化できるの全然知りませんでした。 WillBrainsさんのページをひょんなことで発見。 IntelliJ や PhpStorm などの日本語化 IDE がJavaで作成されているから、Pleiades で日本語化でき…

Pythonメモ-54 (py.test と pytest) (pytest, command, since version 3.0)

概要 普段お世話になっている pytest さんなのですが、ネットで情報みると py.testってなっているものと pytestってなっているものが あります。 バージョンが異なるのかなって思って見てみても $ py.test --version This is pytest version 3.3.0, imported…

Pythonメモ-53 (pytest から pudb 起動) (pytest, pudb, pdbcls, pudb.debugger)

概要 前回、前々回とpudbについて書きました。 devlights.hatenablog.com devlights.hatenablog.com pudbのdocument見ると、pytestからpudb起動も出来るとのこと。 Getting Started — pudb 2.0.1.7...1...4 documentation 普段からpytest使っているので、こ…

Pythonメモ-52 (ipython 上で pudb 起動) (ipython integration, pudb, %pudb, magic command)

概要 前回の続き devlights.hatenablog.com 前回で、pudbスゲーってなって、いろいろ見てみると ipython とも連携できるみたい。 PuDB/IPythonIntegration - Andreas Klöckner's wiki 試してみる てことで、前回の環境には ipython いれてなかったので入れる…

Pythonメモ-51 (PuDB -- コンソール上でIDEみたいなデバッグ環境) (pudb, pdb, full-screen console-based visual debugger for Python)

概要 twitter で以下のようなツイートを発見。 Trying to find a bug in your script? Rerun it with pdb as followspython -m pdb example.py(example.py and output attached)Too complicated? The text-GUI debugger pudb is here to helppython -m https…

Pythonメモ-50 (conda 4.4.6 にしたら fish shell 上で activate 出来なくなった) (conda, activate, fish)

概要 以前、以下の記事で fish shell に切り替えたのですが devlights.hatenablog.com conda のバージョンをアップデートしたら、fish shell 上で activate できなくなりました。 $ conda --version conda 4.4.6 $ activate py3 Error: activate must be sou…

Pythonメモ-49 (startswithとendswithはタプルも受け付ける) (str, bytes, bytearray)

概要 知らなかったのでメモメモ。ドキュメントみたら、ちゃんと書いてあった。。。 大抵の言語では、文字列などに startswith / endswith みたいなメソッドが存在していますが pythonの場合は、タプルも受け付けてくれる。何気にすごい便利です。いちいちル…

Pythonメモ-48 (vscodeで特定のpython環境を選択) (visual studio code, select interpreter, conda)

概要 忘れないうちにメモ。Visual Studio Code (vscode) で特定の python 環境を選択するには Cmd + Shift + P してから Python: Select Interpreter で使うものを選択する。 予め、MicrosoftのPython拡張機能をインストールしているのが前提条件ですね。 他…

fish shellインストール & condaの設定 (mac, fish shell, oh my fish, fisherman, conda, dracula-theme)

概要 今更ながら fish shell 導入してみました。 fishshell.com conda を使っている場合にちょっとハマった点が あったので、忘れないうちにメモメモ。 下調べ 以下のページの情報がとても有用でした。感謝。 dev.classmethod.jp qiita.com qiita.com もろも…

Pythonメモ-47 (結果の型を特定の値の型と一致させる) (python3, type, coerce)

概要 Fluent Python ―Pythonicな思考とコーディング手法作者: Luciano Ramalho,豊沢聡,桑井博之,梶原玲子出版社/メーカー: オライリージャパン発売日: 2017/10/07メディア: 単行本(ソフトカバー)この商品を含むブログを見る に書いてあった小ネタ。なるほ…

Pythonメモ-46 (2.x系と3.x系で内包表記内の変数のスコープが違う) (python2, python3, listcomp, 内包表記, 変数スコープ)

概要 pythonに慣れている人は当然な知識なのかもしれませんが、自分用に忘れない内にメモメモ。 Python 2.x 系と python 3.x 系では、内包表記で使用する一時変数のスコープが違うんですね。 python 2.x 系 $ activate py2 (py2) $ python --version Python …

Pythonメモ-45 (Django vs Flask) (Django, Flask, 比較)

概要 django と flask の分かりやすい比較してくれているページがあったので、忘れないうちにメモメモ。 devel.tech かなり長いですが、リンクをそれぞれ貼ってくれているので参照し易いです。 どちらも知らない人に説明する際に、使えそう。 記事中にでてく…

Pythonメモ-44 (conda に conda-forge チャネルを追加) (conda config, channel, 追加パッケージ)

概要 conda 使っていると、大体の有名どころのパッケージは見つかるのですが 当然、存在しないものもあります。いろんなページで、そういうときは pip でインストールすると記載されています。 例えば、私が個人的にめっちゃ使っているパッケージに pypercli…

Pythonメモ-43 (conda search する際のtips) (full-name, names-only, 名前で完全一致, 名前だけ表示, anaconda search)

概要 よくオプション忘れちゃうので、自分用のメモ。 conda 使っていると、パッケージ探すときに conda search するのですが pip search と同じで、conda search もデフォルトでは、その文字列を名前に「含む」ものが 検索結果として表示されます。 どんなの…

javascript と python が似てる (JavaScript is almost pythonic)

概要 面白い内容だったのでメモメモ。 javascriptの方は、ES2017。pythonの方は、3.6系ですね。 確かに似てる。 dev.to 過去の記事については、以下のページからご参照下さい。 いろいろ備忘録日記まとめ http://sites.google.com/site/gsfzero1/ サンプルコ…

Pythonメモ-42 (mmapとreの組合せ) (パフォーマンス, メモリマップ, re.search, mmap.mmap)

概要 stackoverflow で以下のスレッドを見つけました。 stackoverflow.com 内容は linuxのgrepコマンドと比べて、pythonで組んでみた俺のgrepコード超遅いんだけどなんとかなんないかな? って事なんですが、そこで回答された方が提示した案が以下の点。 メ…

Pythonメモ-41 (__weakref__ 属性) (weakref, 弱参照, ユーザ定義クラス, __slots__)

概要 devlights.hatenablog.com 前回の補足メモ。 弱参照を作った際、python データモデルでは、オブジェクトの __weakref__属性に 設定されるとのこと。試してみると set01 = {1, 2} wref = weakref.ref(set01) print(hasattr(set01, '__weakref__')) 出力…

Pythonメモ-40 (オブジェクトが削除されたことを検知する) (weakref.finalize, ファイナライザ, 弱参照)

概要 小ネタ。以下の書籍で知りました。 Fluent Python ―Pythonicな思考とコーディング手法作者: Luciano Ramalho,豊沢聡,桑井博之,梶原玲子出版社/メーカー: オライリージャパン発売日: 2017/10/07メディア: 単行本(ソフトカバー)この商品を含むブログを…

Pythonメモ-39 (メッセージボックス表示) (tkinter, messagebox)

概要 小ネタ。 スクリプト書いていると、たまに処理完了したから、メッセージボックス表示したいときがあります。 たまに、バッチファイル作って、そこから表示しているサンプルも見るのですが pythonに標準搭載されている tkinter にメッセージボックスがあ…

Pythonメモ-38 (disモジュール) (バイトコードの逆アセンブラ, dis.dis, dis.Bytecode, dis.code_info, compile)

概要 disモジュールは、バイトコードの解析をサポートしてくれるモジュールです。 今、書いた処理が実際には、どんな感じに解釈されるのかなーって、稀に気になったときに使えます。 結構見ていると面白いです。 dis.dis() よく参考書とかに載っているのは、…

Pythonメモ-37 (bisectモジュール) (配列二分法アルゴリズム, bisect_left, bisect_right, SortedCollection)

概要 大量のデータからマッチするものを見つけるという処理はよくあります。 大抵はリストなどを使って処理すると思うのですが 件数が何十万件とかなると、リストの標準メソッドを使うと 先頭からスキャンしていくので、時間がかかる時があります。 そういう…

pbcopyとpbpasteコマンド (mac独自コマンド, clipboard, pasteboard, pyperclip)

概要 macでクリップボードを扱う事ができるコマンドがあるのを今更しった。 mac使っている人だと当たり前なのかもしれないけど、自分用にメモメモ。 このコマンド知ったのは、pythonのpyperclipってライブラリのソース眺めていたときに macの場合に、これら…

Pythonメモ-36 (コメントでpylintの警告を抑制する) (pylint, suppress warning, claiming)

概要 よく忘れるのでメモメモ。 pylintを使っていると、きっちり警告出してくれるので、とても有り難いのですが たまに一時的に抑制したいときがあります。例えば pyzmqつかっていると、zmq.REPって形で通信形式を指定するのですが このREPって属性は、実行…

Pythonメモ-35 (基本コンテナオブジェクトと読み取り専用オブジェクト) (list, dict, set, tuple, MappingProxyType, frozenset)

概要 python には、基本的なコンテナとして list dict set が用意されています。で、他の言語(特にコンパイル系の言語) やってた人がよく言ってくるのが 「読み取り専用のコレクションみたいなのないの? IReadOnlyCollectionみたいな」 って質問です。pyt…