このblogは、著者である「sakito」が技術的に生存している事を報告するために存在します タイトルを「紹介マニアどらふと版」から変更しました 概要 Python は 「PEP 8 -- Style Guide for Python Code」というコーディング規約がある。 また、ソースコードが pep-8 に準拠しているかチェックするための「pep8 - Python style guide checker」が存在する。 Python 使いは、pep-8 に準拠したソースを記述するのが良い。 pep-8 の中で最も守られていないルールはおそらく「1行79文字制限」ではないだろうか。 pep8 - Python style guide checkerではこれに違反すると「E501 line too long」になる。 テストコード等一部で E501 になるのが仕方ない場合もあるが、通常
Python’s simple, easy-to-learn syntax can mislead Python developers – especially those who are newer to the language – into missing some of its subtleties and underestimating the power of the language. In this article, Toptal’s Martin Chikilian presents a “top 10” list of somewhat subtle, harder-to-catch mistakes that can trip up even the most advanced Python developer. authors are vetted experts
世界には1行でプログラムを書くワンライナーという技巧的プログラミングの世界があります。 ワンライナーと言われる言語の多くはPerlやRubyなのですが、委員長キャラのPythonでもワンライナーができます。 PEP8とZen of Pythonで綺麗になっているPythonicな世界に Pythonでも1行で書いたよ!楽しい!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌ などと技巧プログラミングをする闇Pythonista(私)がテクニックなどもろもろをまとめたものがこの記事になってます。 まだPython力を鍛えている途中のわたしなのでなにか指摘などありましたらコメントをいただければです。 対象読者 Pythonをある程度かける人 Pythonの細かい挙動に興味のある人 白Pythonに飽きてしまった人 テクニック1:代入文を式にする Pythonでの代入は基本改行が必要です。
Pythonは、Rubyと同様、とてもよくできた汎用的なプログラミング言語です。 PythonからRubyへやってきたなら、Pythonよりもほんの少しだけ構文が多いことに気づくでしょう。 Pythonとの類似 Pythonと同様に、Rubyは… irbと呼ばれる対話型の実行環境があります。 コマンドライン上でドキュメントを読めます (pydocの代わりにriコマンドを使います)。 通常の改行を除いて、特殊な行区切りはありません。 Pythonにおける三重引用符のように、文字列リテラルを複数行に記述できます。 角かっこはリストを示すために使われ、 波かっこは辞書(Rubyではハッシュと呼ばれます)を表すために使われます。 配列は同じように機能します( 要素を追加すれば配列は大きくなっていきます。 a3 = [ a1, a2 ]のように書けば配列の配列を作って、 それらを構造化することもでき
Pythonには、二つのオブジェクトが同じオブジェクトかどうか判定する is演算子というのがある。==演算子とちょっと似ているが、==演算子は二つのオブジェクトの値が等しいかどうかを判定し、is演算子は値に関わらず異なるオブジェクトが指定されればFalseを返す。 >>> list1 = [1,2,3] >>> also_list1 = list1 >>> list2 = [2,3,4] >>> equal_to_list1 = [1,2,3] >>> list1 is also_list1 # list1 と also_list1 は同じオブジェクト True >>> list1 is list2 # list1 と list2 は異なるオブジェクト False >>> list1 == list2 # list1 と list2 は異なる値を持つ False >>> list1 is
なんかgcネタが続いてしまうが、先日のPython Hack-a-thon で発表した中で、「ジェネレータオブジェクトが解放されない場合がある」というのは、あまり知られていないようだ。Python公式ドキュメントを確認してみると、どうやらこちらにも書かれていない。知らないとハマってしまう場合もあるので、もうちょっと詳しく解説しておこう。 ガベージコレクションで解放されないオブジェクト まず、ちょっと復習しておこう。Pythonのガベージコレクション機構では、__del__() メソッドを持ったオブジェクトで循環参照を作ってしまうと、そのオブジェクトは自動的には解放されなくなってしまう。 例えば、次のように __del__() メソッドを持つクラスを定義する。 class UnCollectable: "__del__()メソッド付きクラス" def __del__(self): print
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonの生みの親Guidoパパのブログエントリを翻訳してみました。「Why explicit self has to stay - なぜPythonのメソッド引数に明示的にselfと書くのか」。Pythonのメソッド引数に書く「self」はしばしば,他言語からのPython移民を中心に「ウザイ」「キモイ」「消えてなくなれ」と攻撃の対象となることが多いのです。GuidoパパはPythonが生まれて10年,もう何度も似たようなことを聞かされ,そのたびに明快な反論を行ってきました。言語の設計者には,技術的な素養はもちろんのこと,情熱と根気,そして我慢強さが必要なんだなあとつくづく思い知
それにしても、Pythonのjoin()はなんでArray#joinでなくてString#joinなんだ? これ、理由は明解で、「join メソッドは文字列の処理だから」です。 This method can be used with any argument which obeys the rules for sequence objects, including any new classes you might define yourself. 弾さんのところのコメントに出てきている、「General Python FAQ - 1.4.8 Why is join() a string method instead of a list or tuple method?」で全てなわけですが、str.join (unicode.join) は 任意の sequence に適用できて、 ",
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く