タグ

ブックマーク / atsuoishimoto.hatenablog.com (4)

  • クラスブロックのひみつ - atsuoishimoto's diary

    さて、 リスト内包のひみつ - atsuoishimoto's diary で、Python3では、リスト内包式は関数呼び出しとなることを説明した。 >>> a = [i*2 for i in range(3)] というスクリプトは、次のように展開される。 >>> def _listcomp(_it): ... ret = [] ... for i in it: ... ret.append(i*2) ... return ret ... >>> _it = range(3) >>> a = _listcomp(it) 通常、この点はあまり気にする必要はないが、問題となるケースもなくはない。 クラスブロックのリスト内包 クラスブロックで次の処理を実行してみよう。 class Foo: NUMS = [i*2 for i in range(3)] まあ、これは当然動作する。Foo.NUMS

    クラスブロックのひみつ - atsuoishimoto's diary
  • Zipファイル一個で実行可能なPythonアプリケーションを作ってみる - atsuoishimoto's diary

    アプリケーションを作成して配布するとき、配布するのは複数のファイルやディレクトリではなく、ファイル一つだけで済ませることができたらそれに越したことはないだろう。Pythonには cx_Freeze や py2exe のような、プラットフォーム固有な実行可能ファイルを開発するための環境も揃っているが、ここではもうちょっとライトに、Pythonの実行環境があれば実行できる zip ファイルの作り方を紹介したい。例として、flaskを使った簡単なWebアプリケーションを作ってみよう。 尚、ここで作成したファイルは https://github.com/atsuoishimoto/demo_pkgrsrc に置いてあるのでご参照いただきたい。 リソースファイルの使い方 普通、アプリケーションにはスクリプトファイル以外にいろんなファイルが含まれる。この例のようなWebアプリケーションではHTMLやC

    Zipファイル一個で実行可能なPythonアプリケーションを作ってみる - atsuoishimoto's diary
  • mockはこう使え - atsuoishimoto's diary

    最近、Mockライブラリ http://www.voidspace.org.uk/python/mock/ を使ってみたのでメモ。 このライブラリは、その性質上、動的にメソッドや属性を作成するケースが多く、普通のPythonライブラリのようにイントロスペクションに頼って使い方を調べるのは難しい。気で使うならまじめにドキュメントを読み込む必要がある。 関数の置き換え テスト中に呼び出される関数をMockで置き換える例。ここでは、関数 myapp.utils.func1() を置き換える。 from mock import Mock import myapp.utils # myapp.utils.func1 を、常に100を返す関数に置き換える myapp.utils.func1 = Mock(return_value=100) 戻り値が定数でない場合は、Mock()にside_effec

    mockはこう使え - atsuoishimoto's diary
  • 僕たちPythonistaは、プログラミングに、Excelを使います! - atsuoishimoto's diary

    みんな、Excel使ってますか!?もちろん使ってますね!?休暇届も、作業日報も、見積書も、スケジュール表も、みーんなExcelですね!? もちろん、プログラミングだってExcelですね!? 当然です!みんなそうやって仕事してるんです! Excel版のTwitter公式クライアントはまだリリースされないんでしょうか!? だけど、Excelでコーディングしてると、ときどきちょっとだけ不便に感じることがありますね!いちいちテキストファイルに落としてから実行しなければならないからです!テキストファイルなんて低級なフォーマットには関わりたくないですね! でもPythonなら!Pythonなら大丈夫!Pythonなら直接Excelファイルを実行できます!Pythonにはパッケージの配布フォーマットとしてeggという形式が普及していますが、eggはもう古いですね! これからはxls形式を使いましょう!x

    僕たちPythonistaは、プログラミングに、Excelを使います! - atsuoishimoto's diary
  • 1