サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのメタプログラミング手法の一つ「メタクラス」は,初心者にとっては「なんか強そう/経験値たくさんもらえそう」なアイテムの最右翼だと思う。反面「どうすればいいか/なにができるか」ということがなかなか理解しづらい。 英語のブログを見ていたら,メタクラスの理解に役立ちそうなちょうどよいサンプルを見つけたので,紹介がてら独自の解説を付け加えたいと思います。 メタクラスを簡単に説明すると,「本来コードを書かなければ実現できないような処理を黒魔術的な処理でなんとかしちゃう」ためのテクニックです。コード量を(時には劇的に)減らすことができたり,すっきりした見通しの良いクラス設計を実現できま
Python勉強し始めて一ヶ月くらいたったんで一度復習を兼ねてまとめてみようと思います。僕が今までPHPとかPerlとかJavaScriptを使っていて、Pythonはこうやるのかーとか、これは便利だなーと思ったところ、開発していてはまったところなどピックアップしてみました。 初めてのPythonを読んで初心者向け勉強会に参加した程度の知識です。とりあえず初めてのPythonがかなりいいのでこれ読むだけで大体基礎は習得できた気がします。基本的な文法の説明だけでなく、大事なことは何回も繰り返し書いてあったり、Pythonの思想などにも触れているのでなぜこういう実装になっているかということも理解できます。これオススメ。 尚、このエントリーではPythonのバージョンは2.5をベースにしてます(主にGoogleAppEngineで使ってるので)。間違えなどあったらツッコミお待ちしてます。 文法、
この文章は、 Dmitry A. Soshnikov さんの、 ECMAScript に関する優れた記事 "JavaScript. The Core." を許可を得て翻訳したものです。世の中に、 JavaScript のブラウザ API や、実装系に関する記事は多々あれど、 ECMAScript の仕様に則って、ここまで詳しく説明してくれている記事は殆ど無いと思います。今回は翻訳できておりませんが、文中で参照されている Dmitry さんの ES3 シリーズも、読み応えのある( ECMAScript3 の仕様の副読本としても読める)素晴らしい内容ですので、是非チャレンジしてみてください!(ご要望があれば訳します翻訳許可を頂いたので、この記事内で参照されている章から逐次翻訳を進めます!)。 ちなみに Dmitry さんは、計算機科学や数学にも明るい方でらっしゃいます。が、私は違います。極力
エキスパートPythonプログラミング読書会02 : ATND に参加して講師のお手伝いをしてきました。 今回の読書会でお話できたのは第2章のうち以下の内容だけでした。 リスト内包表記 イテレータとジェネレータ ジェネレータ コルーチン ジェネレータ式 準備不足で要領よく進行できず、すみませんでした。実際にやってみた雰囲気や進め方など、次回への改善に繋げていきます。2章全般の資料を読書会の前にアップロードして公開していますが、次回まで時間があるので後半部分は修正すると思います。2章全般の内容で、 この内容を詳細に知りたい! この内容がよく分からなかった(> <) などなど、何かしらありましたら Twitter で @t2y か、ハッシュタグ #expertpython を付けてコメントください。 エキ Py 読書会02 2章前半 スライド資料、サンプルコードは 2010/9/29(水) に
Agile2008でもらったゴムバンドを未だに手首につけている。確かBob Martinだったと思うが、テスト駆動開発と「Clean Code」の関係について熱く語っていた年だ。 メソッドは短く。 メソッドが実現することは一つ。 あるメソッドのテストに色々と条件を設定しているのなら、それはClean Codeではない。 だが我々はその基本を簡単に忘れてしまう。色々とテストのための道具が揃ってきたせいもあろう。基本を忘れて一つのメソッドに色々と詰め込みすぎるとテストが大変になる。Mockがあっても、だ。Fixture使うのはさらに大変だし、Seleniumとかで入力から何から条件を与えるのはもっと面倒。そしておそらく抜けが発生する。 最近、内職でPython使ったアプリを組んでいるのだが、今回は上記「基本」を徹底するようにしている。例えばこんなコードがある。 def nearby(reque
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 例によって翻訳です。Erlang for Python Programmersという英文記事の翻訳です。 Pythonを使っている人が関数型言語の考え方を学ぶのによい記事になってます。 Pythonはコードが分かりやすいので,Pythonistaだけでなく,RubyやPerl,PHPそしてJavaのような命令型言語を使っている人にとっても有益な記事だと思います:-)。 初めに ここ数年,Erlangへの注目が高まっている。Erlangのプログラミングモデルはプロセス間でメッセージをやりとりするだけで実行する並行プロセスに根ざしている。それぞれのプロセスはとてもシンプルな関数型言語で作ら
こんにちは!! 最近,SQL ばかり書いているヨシオリです!! ちょっと気晴らしにコードを書きたかったのですが, 丁度,id:kusigahama が「社内 Gyazo が欲しいよぉ」 って言ってたのを思い出した気がしてのでサクっと作ってみました. 超シンプル!! サーバ側は web.py で動いています. #!/usr/bin/env python # -*- coding: utf-8 -*- import web,dbm,hashlib urls = ( '/(.*)','Gyazo' ) app = web.application(urls, globals()) db = dbm.open('gyazo','c') class Gyazo: def GET(self,param): param = param.split('.')[0] image = db.get(param)
Javaだとよくビルダーメソッドをstaticで定義するけど、Pythonの場合はできるだけクラスメソッドを使った方が良いだろう。 例えば、float.fromhex http://docs.python.org/library/stdtypes.html#float.fromhex はクラスメソッドなので、 >>> class Foo(float): ... pass ... >>> foo = Foo.fromhex('0x1p-1') >>> type(foo) <class '__main__.Foo'> ビルダーメソッドを子クラスでも利用できる。 もちろん、ビルダーメソッドが子クラスでも妥当であるかどうかは子クラス次第なんだけど、妥当でない場合は子クラスでオーバーライドしたらいいだけの話なので、子クラスでも使えるようにクラスメソッドにしておいて損は無い。
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー スタティックメソッドは要らない子? 僕は,これまでいくつかstaticmethodを作ったことがある。メソッドの実行にインスタンスもクラスオブジェクトも必要ないけど,名前空間的にと言うか,コードの書き方的に,そのクラスに関する処理であることを明示したいときに使う。 実際,Google Code Searchあたりで「python staticmethod」と検索すると沢山実例が出てくる。 たとえば,twitter.pyなどではStatusクラスのNewFromJsonDict()メソッドがstaticmethodになっている。jsonのデータをStatusクラスのインスタンスとして返す
Pythonでは、クラス内で定義することの出来るメソッドが三種類用意されている。メソッド・クラスメソッド・スタティックメソッドの3種類だ。それぞれどんな特徴を持っているのだろうか? メソッド まず、メソッドはおなじみのインスタンスメソッドで、第一引数としてインスタンスを受け取り、呼び出す時には必ずインスタンスが必要となる。 class Foo(object): # メソッド def method(self, arg): pass Foo().method("arg") #OK Foo.method("arg") #これはエラー クラスメソッド クラスメソッドは第一引数としてクラスオブジェクトを受け取り、インスタンスが無くとも呼び出すことが出来る。 class Foo(object): # クラスメソッド @classmethod def clsmethod(cls, arg): pass
これはなんですか? 奥村晴彦氏の著書「C言語による最新アルゴリズム事典」をPythonでやろうと決意。Rubyに翻訳されていたので、Pythonでもやってみようと。でも実は書籍はもっていなくてCとRubyのソースを見つつ翻訳しています。1日1個ペースで進んでいます。 やっているうちにこの本が欲しくなってきました。 個人のPython力を高めるために始めましたので、間違いが含まれているかもしれません。ご指摘等ございましたら連絡[syobosyobo at gmail dot com]ください。 ちょっと方針をかえて、ctopyで訳すことにした。またまた方針をかえて、、、ctopyはあまりつかえない。ちょっといじってやらないと、出力がよくない。コメントとか入ってると、うまく変換してくれないし。 で、そのあとPythonらしい書き方で書いていこう、かと。どうなるかわかりませんが。
2009年6月5日 Pythonによるデザインパターン 『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)を読みました。 私はPythonでばっかり遊んでいるのですが、PythonとRubyとは基本は同じ機能のように見えるので、Pythonによるデザインパターンに翻訳してみようと思います。 まず、デザインパターンの原則から 変わるものを変わらないものから分離する インターフェイスに対してプログラムし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(これは「Rubyによる~」の筆者による) これって、プログラミング全般に通じるものがあるようにも感じます。 Template Method Strategy Observer Composite Iterator Command Adapter Proxy 似た趣旨のブログ tachi
1章: 始めよう¶ Pythonのインストール Pythonの実装系 Jython IronPython PyPy その他の実装 Linux へのインストール パッケージインストール ソースコンパイル Windows へのインストール Python のインストール MinGW のインストール MSYS のインストール Mac OS X へのインストール パッケージインストール ソースコンパイル Python プロンプト インタラクティブプロンプトのカスタマイズ iPython: より良いプロンプト setuptools のインストール 動作原理を理解する EasyInstallを使ったsetuptoolsのインストール distutilsにMinGWのフックを入れる 作業環境 エディターと補助ツールを使う コードエディター Vimのインストールと設定 その他のエディタを使う その他のバイナ
話すようにプログラムするPythonチュートリアル - なんたらノート 第二期の続きです。前回は努力と根性でどうにかなるところまでやりました。今回は、前回再び泥臭いコードになってしまったプログラムを、もっと綺麗にしてみようと思います。 前回はできるだけ一般的な言葉で説明してみました。今回は、既存の概念とそれに対するよりPython的な方法を説明します。前回が知恵と根性なら、今回は知識の力を借りよう、という感じ。標準には含まれていませんが、とても便利なのでPythonデコレータが熱い - なんたらノート 第二期で紹介した、decoratorモジュールも活用します。 デコレータで本質/属性の分離 Python2.4から、デコレータ記法が増えました。例のdefの前の@です。以前から、「関数を入力して関数を出力する関数を使って、既存の関数を書き換える」というトリック(デコレータの本質はコレ)はあり
Pythonでえらくハッキッシュなコードを書き散らして遊んだ 3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトにチャレンジ - なんたらノート 第二期 うえ、他人のエッセイをえらくこき下ろし OOコード養成ギブス - rants OOコード養成ギブスとやらが人気らしい。 - なんたらノート 第二期 て、われながら生産性のないやつだと思うので、ここは逆に、Pythonチュートリアルをひとつ書いてみようと思います。 まず最初に、こんなプログラムがあったとさ。 #素数の数列を返すアルゴリズム def prime_numbers_until(limit): prime_numbers = [] for n in range(2, limit): divider_found = False # 1より大きくその数より小さい範囲で調べる for m in range(2,
id:TAKESAKO の 「Python SyntaxError Programming」が凄いです. http://developer.cybozu.co.jp/takesako/2010/05/python-syntaxer.html #!/usr/bin/python _=-~-~(()>[]);_,__=_*_,_**_-~-~_;___='%'+`SyntaxError`[_];exec''+___*(__+~-~_)%(_*_^-~__,_*_-~__,~__*__/~_,~-~_*~_,_-__^~-~_*_,-~-~__,~-_*_,_/_^~_*~_,_-~-~_*_,_-~-~_*_,_|~-~_*~_,_+__+__/_,__,~_&_*_,__+_|_*_,_-__^~-~_*_,__^~-_*_,_|~-~_*~_,~-~_*~_,-~__,-~-~__) これ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く