サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
python-history-jp.blogspot.com
今日は何度も「なぜPythonの整数の割り算はC言語のようにゼロに向けて丸めるのではなく、切り捨てなのか?」と聞かれた。 数値が両方とも正の場合には、何も驚くようなことは発生しない。 >>> 5//2 2 しかし、どちらかの数値が負の場合、結果は切り捨てられる。言い換えると、ゼロから遠い方向(負の無限大方向)に向けて丸められる。 >>> -5//2 -3 >>> 5//-2 -3 この挙動は何人かの人を混乱させたようであるが、このような実装になっているのは数学的な根拠がある。整数の割り算の演算子(//)と、その弟の余りを計算する演算子(%)は、次のような数学的な関係を保っている。すべての変数は整数とする。 a/b = q あまり r これは、次のような関係性を持っている。 b * q + r = a かつ 0 <= r < b (ただし、a, bはともに0以上の整数) もしも、この式の関係
原文:http://python-history.blogspot.com/2009/02/adding-support-for-user-defined-classes.html 原文投稿者:Guido van Rossum にわかには信じられない人もいると思うが、CWIで開発が行われていた最初の一年の間、Pythonはクラスをサポートしておらず、最初の公開リリースの前にオブジェクト指向をサポートするようになった。どのようにクラスが追加されたかという過去の経緯を理解してもらう手助けになると思うので、現在のPythonがどのようにクラスをサポートしているのか、という点から話を始めようと思う。 Pythonはオーソドックスなスタックベースのバイトコードインタプリタ、もしくは仮想マシンとしてC言語で実装されている。プリミティブな型も同様にC言語で実装されている。アーキテクチャとしては一貫して「
リスト内包表記はPython 2.0で追加された。この機能はGreg Ewingによるパッチを元にして、Skip MontanaroとThomas Woutersらの貢献もあって実現された。私の記憶が正しければ、Tim Petersもこのアイディアをしっかりと保証してくれた。基本的には、リスト内包表記は数学者によって使用されてきた、よく知られた表記法をPythonicに解釈して実現したものである。 {x | x > 10} これは、一般に、10より大きな数の集合と解釈される。数学の世界では、この形式は、例えば全ての実数、全ての整数などを表す普遍集合(universal set)であると、読み手は解釈する。Pythonの2.0には普遍集合の概念はなく、setもなかった。setについてもおもしろい話があるため、将来ブログに投稿することになるだろう。 この概念や、他の状況も踏まえ、次のようなPy
多重継承が利用可能な言語では、メソッドを探索するときのベースクラスを探索する順序を、メソッド解決順序(MRO)と呼んでいる。Pythonではメソッドだけではなく、属性の探索でもこれが利用される。単一継承しかサポートしていない言語では、MROはとてもつまらない話題であるが、多重継承の場合には必要となってきて、MROアルゴリズムの選択が極めて難しい問題となりうる。Pythonでは、クラシック、Python 2.2の新スタイル、Python 2.3の新スタイル(C3とも呼ばれる)の3種類のMROアルゴリズムを持っていることが知られている。Python 3では、最後のアルゴリズムだけが生き残っている。 旧スタイルクラスはシンプルなMROの方式を利用していた。メソッドを探す場合には、シンプルに深さ優先探索を行って、ベースクラスの中で最初にマッチしたオブジェクトが返される。例えば、次のようなクラス構造
原文:http://www.wefearchange.org/2010/06/import-this-and-zen-of-python.html 原文投稿者:Barry Warsaw 注:本エントリーは、Guidoのブログではなく、そこで紹介されていた、Barry Warsaw氏のブログの翻訳です。翻訳と公開の許可をしてくださったBarry Warsaw氏に感謝します Richard Jones氏は現在(元記事執筆時点)、PyCon Australiaでする話の準備をしている。彼はその準備の中で、私に"Zen of Python"の歴史についてたずねてきた。それはTim PetersがPython界に永遠に残した言葉で、Pythonの本質的な真実を良く伝えるものであり、さまざまな場面で引用されている。最初に調べたときには、このリストが最初に公表された時の情報を探すことはできなかったが、そ
原文:http://python-history.blogspot.com/2010/06/inside-story-on-new-style-classes.html 原文投稿者:Guido van Rossum [注意:この投稿はとても長くて技術的です] 表面上は、新スタイルクラスは、元々のクラスの実装と非常に似通って見えるが、新スタイルクラスでは次のような数々の新しいコンセプトが導入されている。 __new__()という名前の低レベルのコンストラクタ 属性アクセスのカスタマイズを一般的にできるようにするデスクリプタ 静的メソッドとクラスメソッド プロパティ(演算してから結果を返す属性) デコレータ(Python 2.4から導入) スロット 新しいメソッド解決順序(Method Resolution Order, MRO) このエントリーでは、これらのコンセプトについて光を当てていこう
原文: http://python-history.blogspot.com/2009/01/introduction-and-overview.html 原文投稿者: Guido van Rossum イントロダクション Pythonは現在、もっとも人気のある動的言語のひとつである。この言語にはPerl, Tcl, PHP, そして新規参入のRubyなどがある。しかし、Pythonは本当はLispやSmalltalkのような汎用目的のプログラミング言語であるにもかかわらず(他の言語も同じであるが)、「スクリプト」言語として見られることが多い。今日、Pythonは使い捨てのスクリプト言語から、24時間365日間中断せずにサービスを提供する、巨大でスケーラブルなウェブサービスにまで幅広く使用されている。また、GUIやデータベースのプログラミングや、クライアントサイド、サーバーサイドのウェブプ
原文:http://python-history.blogspot.com/2009/02/first-class-everything.html 原文投稿者:Guido van Rossum Pythonにおける私の目標の一つが、すべてのオブジェクトを「ファーストクラス」にするというものであった。これは、プログラミング言語の中のすべてのオブジェクト(数値、文字列、関数、クラス、モジュール、メソッドなど)に対して、名前をつけて、同じように取り扱うことができるようになるということを意味している。オブジェクトを変数に格納したり、リストの中に並べたり、辞書に格納したり、引数として渡したり、といったことが可能になるのである。 これを実現するためのPythonの内部実装はとてもシンプルになっている。すべてのPythonのオブジェクトは共通のC言語の構造体を元にしており、インタプリタ内のあらゆる場所で
原文:http://python-history.blogspot.com/2009/04/origins-of-pythons-functional-features.html 原文投稿者:Guido van Rossum 私はPythonが関数型言語から強く影響を受けたことがあるとは一度も考えたことはなかったが、そのように言ったり思ったりする人はいるようである。私がそれまでに慣れ親しんできた言語は、C言語やAlgol 68のような命令的な言語である。Pythonの関数はファーストクラスオブジェクトとして作成されているが、Pythonを関数型のプログラミング言語として見たことはない。しかし、以前から、リストと関数を使用して、もっと多くのことをしてみたいと思うユーザがいたことは確かである。 リストに対して行う一般的な操作としては、リストのそれぞれの要素に対して関数を適用し、新しい配列を作成
原文:http://python-history.blogspot.com/2009/02/early-language-design-and-development.html 原文投稿者:Guido van Rossum ABCからPythonへ Pythonの開発のスタート時から、もっとも大きい影響を与えた言語は、1980年代の初め頃にLambert Meetens氏とLeo Geurts氏などがCWIで言語設計を行ったABCである。ABCはBASICの代替の教育用言語を目指していた言語である。そしてパーソナルコンピュータのための言語および環境になることを目指した。ABCの開発は、最初にプログラミングのタスクを分析する作業から始まり、何度か大きなユーザテストを含むイテレーションを実行しながら、言語の設計が行われた。私がABCグループで持った役割というのは、主にこの言語本体と、統合編集環
原文: http://python-history.blogspot.com/2009/01/pythons-design-philosophy.html 原文投稿者: Guido van Rossum 今後のブログのエントリーは、生々しいPythonの歴史の詳細に入り込んでいく予定である。しかし、それに触れる前に、私がPythonの設計や実装をしている時に、意志決定を助けてくれた哲学的なガイドラインについて詳しく説明をしていきたいと思う。 まず最初に、Pythonはもともと"スカンク・ワークス(社内の秘密裏のプロジェクトの意味)"として計画がスタートした。公式な予算などなかったし、私は素早く結果を出そうとしていた。マネジメントにプロジェクトのサポートを説得する、というのがその理由の一つである(そして、その目論見は達成できた)。このような状況から、時間を節約するためのルールがいくつか導き出
このページを最初にブックマークしてみませんか?
『The History of Python.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く