もし想定以上のメモリを Python プログラムが消費しているのであれば、ループの中で循環参照が生まれていることや、回収不能オブジェクト(循環参照なうえに __del__ メソッドが存在するためにgcがどこから循環を切っていいのか判らないオブジェクト)が存在しないかを疑う。 import gc gc.set_debug(gc.DEBUG_LEAK) gc.disable() # 問題の処理 gc.collect() # 回収された循環参照や回収不能オブジェクトが表示される
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
CodeZine:Java meets Python - 第0回 Jythonはじめました(前編)(java, Python) http://codezine.jp/a/article/aid/1714.aspx CodeZine:Java meets Python - 第0回 Jythonはじめました(後編)(java, Python) http://codezine.jp/a/article/aid/1727.aspx 僕が書いたんじゃないのか、と聞かれたけど、僕じゃありません。 - えっと、とりあえずDISりにならない程度に気をつけてすこし補足すると、 コマンドjythoncを使うと、Jythonのソースコードから.classファイルを生成できます。(中略)こうして、Java/Pythonの融合した世界が実現できます。 これってものすごくもったいないことをしている。わざわざ.clas
267:文字列をPythonスクリプトとして実行する exec 文を用います。現在のスコープ内で実行されます。 >>> exec '''def hello(): ... return 'Hello World.' ... ''' >>> hello() 'Hello World.' 閉じた環境を用意する場合 in を用います。 >>> G = {} >>> L = {} >>> exec '''def hello(): ... return 'Hello World.' ... ''' in G, L >>> hello() Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'hello' is not defined >>> L['hello']() 'Hello
このページは、Rubyレシピブック (詳細) をPythonで書こうというたくらみです。内容は当たり前のことばかりですが、たまにしかコードを書かない人間は、こうしたことがわからなくてイライラしてしまいます。10行くらいのプログラムならさっと見てさっとかけるようにするのが目標です。 2008年1月21日19:00 ロボットによる荒らし対策を施しました。 レシピブック作成にご協力いただける方がいらっしゃいましたら、最初にユーザー登録をお願いします。 レシピブックを修正する際は、一度ログインをしてください。ログインすると右肩の部分に編集の項目が現れます。 記述方法は、structuredText もしくはreStructuredText でお願いできればと思います。 WEB上の情報 Python クイックリファレンス日本語訳 pythonライブラリリファレンス pythonチュートリアル Per
118:ハッシュの要素を挿入した順に取り出す Ruby のハッシュの役割をする Python の型は dict(辞書) です。 Python の辞書型には順序という概念はありません。そのため挿入した順に要素を取り出すことはできません。このため、標準の辞書型とは別の、順序を保持できる辞書型として、 collections.OrderedDict? が用意されています。 >>> from collections import OrderedDict >>> d = OrderedDict() >>> d['a'] = 1 >>> d['b'] = 2 >>> d['c'] = 3 >>> d OrderedDict([('a', 1), ('b', 2), ('c', 3)]) >>> >>> for k in d: ... print k, ... a b c OrderedDict? の
IOモナドは難しそうだったのでとりあえずMaybeモナドからはじめる。 >>> def Maybe(typ): class Foo(object): @classmethod def return_(_, x): return Just(x) @classmethod def bind(_, m, f): if isinstance(m, Nothing): return Nothing() elif isinstance(m, Just): return f(m.value) class Just(object): def __init__(self, x): assert isinstance(x, typ) self.value = x class Nothing(object): pass Foo.__name__ = "Maybe_%s" % typ.__name__ retur
ニートというのはダメな人じゃない。 ノーワークおじさんなのだ。 人間やればできる。 誰でも可能性の宝庫なのだ。 LISP、C++、Ruby、Pythonなどで、メタプログラミングを勉強できるみたいだ。 メタプログラミング 代表的なメタプログラミングの例はLISPのマクロである。 メタプログラミングの他の例としてはC++における「テンプレートメタプログラミング」などが挙げられる。 Rubyによるメタプログラミング演習 メタプログラミング ― つまり、"コードを生成するコード"を書くこと Pythonでのメタクラス・プログラミング ほとんどの読者は、オブジェクト指向プログラミングの継承、カプセル化、多態性といった概念については、すでによくご存じのことと思います。 といっても、いろいろな親を祖先とする何かのクラスからオブジェクトを生成する 操作は、通常、「単にそういう」ものとして捉えられています
Introduction This phrasebook contains a collection of idioms, various ways of accomplishing common tasks, tricks and useful things to know, in Perl and Python side-by-side. I hope this will be useful for people switching from Perl to Python, and for people deciding which to choose. The first part of the phrasebook is based on Tom Christiansen's Perl Data Structures Cookbook. I have only been worki
メモ化の概念的には、結局のところ、引数パターンに対する辞書があって、一度やった処理は記録して使いまわす。 前回のものから、メモ化部分を抽出するだけしてみると、 def tarai(x, y, z): if x <= y: return y return tarai(memorize(x - 1, y, z), memorize(y - 1, z, x), memorize(z - 1, x, y)) table = {} def memorize(*args): global table if not args in table: table[args] = tarai(*args) return table[args] で、汎用化しようとしたときに、memorize 中の tarai と、tarai 中の memorize が邪魔になるので、昔見た C# のコード(元ネタ第35回CLR/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く