TSNETWiki
テキストとスクリプトの世界
開始行:
#ref(http://www.python.org/images/python-logo.gif)
[[Python Programing Langage>http://python.org/]]
このページの参照数 &counter; 回
#contents
*[[The Latest Version Python 3 Download here!>http://pyth...
([[最新バージョンPython 3 ダウンロード>http://python.org/...
*Python 3000(Python3)とは? [#y107fdb9]
**Python2以来の大改革 [#o4495456]
Pythonは2000年に、安定版であるver.1.5.2の概念を大幅に変...
Python 3000(Python3)は、このPython2シリーズ以降の大改革...
基本は「&color(red){現行バージョンのPython実装との互換...
Pythonは今まで、言語のマイナーアップデートを繰り返し、...
しかし、本来あった予約語(例えば、どう考えても関数扱い...
Python 3000では、これら歴史的な文法や表記(過去の遺物?...
※Python2という表現は正式なものではなく、Python ver.1.6~2...
**発端 [#g3a95d1f]
私が考えていたよりかなり昔からこの名称はあるようで、最...
この頃はPython2相当のPython 1.6やそれ以降のPython 2.xを...
しかし、Guidoの冗談がきっかけで、とうとう、Python 2.xと...
**Python 3000(Python3)へ移行するための緊急チェックポイン...
新機能より、まず「使えなくなった書式」をチェックすべき...
*組み込み型に関する変更 [#w59b7b9c]
**タプルの展開による代入の「あまり」を入れる [#s49ecf5a]
タプルの展開による代入は、Pythonの便利な書式の一つでした。
>>> a, b, c = 1, 2, 3
>>> print(a, b, c)
1 2 3
しかし、シーケンスの項目と同じ数だけ変数を用意しなけれ...
それ以外はスライスを使う、ということなのですが、スライ...
今回の文法の改定では、関数の引数リストのような書式で「...
>>> a, *b, c, d = 1, 2, 3, 4, 5, 6
>>> print(a, b, c)
1 [2, 3, 4] 5 6
使い出すとこれは意外に便利です
**集合型リテラル [#f09310b0]
set関数を使って定義していた集合型を、ブレース{}に要素を...
>>> {x for x in range(10)}
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
ただし、空集合は辞書の表記と区別するため、set()で作ります
**辞書に関する変更 [#db21f431]
-has_keyメソッドの廃止。key in dictで統一。
-keys,itemsがリストではなくイテレータオブジェクトを返します
-辞書にも内包表現が使えるようになりました
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
**二進法リテラルの追加と八進法リテラルの変更 [#j0c2f219]
0b10101というような二進法表記で整数が書けるようになりまし...
なおbin(int)によって、整数値を二進法表記の文字列に変換で...
**整数型の統合(long型とlong型リテラルの廃止) [#a6c45224]
大きな数値(long整数)の後ろについたLの文字が無くなり、多倍...
**文字列の変更と拡張(1)文字列型(str型) [#t6130dcc]
従来のUNICODE文字列が廃止され、文字列は全てUNICODE処理さ...
**文字列の変更と拡張(2)従来のPython文字列(bytes型) [#hed6...
従来のPython文字列と同様のイミュータブル(不変)バイト列は...
**文字列の変更と拡張(3)変更可能なバイト列(bytearray型) [#...
Python3000では、よく使うバイト配列型が追加されました
**文字列の変更と拡張(4)テンプレート機能 [#bc57841d]
%演算子によるフォーマットに加え、formatメソッドによるフォ...
>>> '{0} you {1} is {2}'.format('All','need','Python')
'All you need is Python'
>>> '{1} you {2} is {0}'.format('All','need','Python')
'need you Python is All'
>>> '{a} you {c} is {b}'.format(a = 'All', c = 'need', b...
'All you need is Python'
なお、%演算子によるフォーマットは廃止されるようですので、...
*演算子、関数の変更と追加 [#s982bfaa]
**「整数/整数」の結果が違う [#k348fbd3]
除算記号(/ スラッシュ)の使い方が変更されました。2.x...
なお、その関係で、operatorモジュールのdiv関数が削除され...
**旧raw_input ⇒ 新input、旧input ⇒ 削除 [#h1028d0a]
入力された文字列を式として評価していたinputが廃止され、そ...
>eval(input('prompt'))
としましょう
**イテレータ/ジェネレータの呼び出しが微妙に変化 [#x589d7...
>itr.next()
でアイテムを呼び出していたイテレータ/ジェネレータが、な...
>next(itr)
で呼び出すことに(メソッドで呼び出すなら、itr.__next__())
Pythonを「オブジェクト指向プログラミング言語」と紹介して...
まぁ、普通ジェネレータ/イテレータは「回してなんぼ」です...
*文法、記法の変更 [#yf408b5b]
**print文、exec文の廃止 ⇒ print関数、exec関数の導入 [#p...
print文とexec文が無くなり、そのままの機能で関数扱いになり...
**バッククォート評価(``)や≠の(<>)表記の削除 [#qaa...
バッククォート評価は使った事ありませんでしたが、<>はPas...
バッククォート評価とは……~
>`1+2` ⇒ '3'~
というようなモノで、同じ機能は~
>repr(1+2) ⇒ '3'~
となります。
**リストの内包記法内の変数がローカルに [#xbbaa250]
2.xでもジェネレータはこの扱いでしたが、Python3000では、リ...
*λ(lambda)とその一族 [#h5c50f70]
**lambda文は健在 [#f8ae442f]
変更点ではないのですが、色々と噂されていたlambda文は健在...
**map,filterは、イテレートオブジェクトを返すクラスに [#ib...
内包記法で用済みかと思われたmapやfilterは、イテレータの...
**applyは廃止、reduceはモジュールに [#w373b36d]
applyに関しては、func(*arg)文法が使えるので、不要という...
*その他、廃止/変更された関数 [#e5c7f9f8]
**廃止された関数(追跡調査中のものも含む) [#bdcdb992]
> callable, coerce, execfile, file, reload, raw_input
**変更された関数 [#dfc5bc8a]
|reduce|→|functools.reduce|
|reload|→|imp.reload(module)[impはモジュールオブジェクト...
|intern|→|sys.intern|
***イテレータオブジェクトを返す関数 [#obcfed13]
> range, map, filter, zip
特にrangeは、ほぼ言語仕様に匹敵する重要関数なので、要チ...
**変更されたモジュール [#o5819214]
|新 dbm|←|旧 anydbm, dbhash, dbm, dumbdbm, gdbm, whichdb|
|新 html|←|旧 HTMLParser, htmlentitydefs|
|新 http|←|旧 httplib, BaseHTTPServer, CGIHTTPServer, Sim...
|新 tkinter|←|旧 全Tkinter関連モジュール(tutleを除く)|
|新 urllib|←|旧 urllib, urllib2, urlparse, robotparse|
|新 xmlrpc|←|旧 xmlrpclib, DocXMLRPCServer, SimpleXMLRPCS...
*オブジェクト指向プログラミング機能に関する変更 [#t75c8671]
**メタクラスの設定 [#h3825ede]
メタクラスの設定が、スロットではなく、規定クラスのように...
(旧)
class C:
__metaclass__ = M
...
(新)
class C(metaclass=M):
...
**propertyがデコレータで書ける [#z98fbc7c]
大した変更じゃないのだけど、あまりにどこでも話題にならな...
class C(object):
def getx(self): return self._x
def setx(self, value): self._x = value
def delx(self): del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
が、
class C(object):
@property
def x(self): return self._x
@x.setter
def x(self, value): self._x = value
@x.deleter
def x(self): del self._x
で、OK。とってもスッキリ。
**type~がclassに統合 [#e7718aca]
今まで<type 'int'>とか出ていたモノが、こっそり<class 'int...
*予約語(reseved words)に関する変更 [#td79d573]
**nonlocalの使い方 [#g232de56]
簡単に
>>> def f():
... a = 1
... b = 2
... c = 3
... def ff():
... a = 10
... global b
... b = 20
... nonlocal c
... c = 30
... ff()
... return a,b,c
...
>>> f()
(1, 2, 30)
>>> b
20
>>>
-その他の新規予約語……True, False, None, as, with
-廃止された予約語……print, exec (何れも関数に移行)
*Python3000についての資料 [#q75fc8a6]
-正式勧告文書 [[PEP3000:http://web.archive.org/web/200606...
-オフィシャル文書(09.01.04改正版)[[What's New in Python 3...
-「みんPy」の柴田さんの説明「[[もっと知りたいPython3000:h...
-上記の柴田さんたちの新連載「[[Python 3.0 Hack!:http://gi...
-Hatena::Diary[[2007-06-07プログラミング日記:http://d.hat...
-上記の元ネタ[[「Python 3000 Status Update(Long!)」:http:...
-Python3000によるプログラミング入門講座「やnでレPython」...
-マイコミジャーナル([[登場! Python 3.0 - 2系との違いを比...
-『初めてのPython』第3版向け用Python3移行の手引き[[「What...
*関連ページ [#vf2a75a0]
-[[Python一般について>Python]]
-[[ここがヘンだよPythonista]]
-[[What's New In Python 3.0の翻訳>What'sNewInPython3.0]]
*現状 [#r53f69fc]
-2012.02.08 Android用実装SL4A用のPythonは、未だPython2系...
*コメント [#bdc90f5f]
- sl4aにPython 3が実装されました! これでandroidはPython...
- I am not sure where you are getting your info, but grea...
- You're so interesting! I don't think I have read anythi...
#comment_nospam
終了行:
#ref(http://www.python.org/images/python-logo.gif)
[[Python Programing Langage>http://python.org/]]
このページの参照数 &counter; 回
#contents
*[[The Latest Version Python 3 Download here!>http://pyth...
([[最新バージョンPython 3 ダウンロード>http://python.org/...
*Python 3000(Python3)とは? [#y107fdb9]
**Python2以来の大改革 [#o4495456]
Pythonは2000年に、安定版であるver.1.5.2の概念を大幅に変...
Python 3000(Python3)は、このPython2シリーズ以降の大改革...
基本は「&color(red){現行バージョンのPython実装との互換...
Pythonは今まで、言語のマイナーアップデートを繰り返し、...
しかし、本来あった予約語(例えば、どう考えても関数扱い...
Python 3000では、これら歴史的な文法や表記(過去の遺物?...
※Python2という表現は正式なものではなく、Python ver.1.6~2...
**発端 [#g3a95d1f]
私が考えていたよりかなり昔からこの名称はあるようで、最...
この頃はPython2相当のPython 1.6やそれ以降のPython 2.xを...
しかし、Guidoの冗談がきっかけで、とうとう、Python 2.xと...
**Python 3000(Python3)へ移行するための緊急チェックポイン...
新機能より、まず「使えなくなった書式」をチェックすべき...
*組み込み型に関する変更 [#w59b7b9c]
**タプルの展開による代入の「あまり」を入れる [#s49ecf5a]
タプルの展開による代入は、Pythonの便利な書式の一つでした。
>>> a, b, c = 1, 2, 3
>>> print(a, b, c)
1 2 3
しかし、シーケンスの項目と同じ数だけ変数を用意しなけれ...
それ以外はスライスを使う、ということなのですが、スライ...
今回の文法の改定では、関数の引数リストのような書式で「...
>>> a, *b, c, d = 1, 2, 3, 4, 5, 6
>>> print(a, b, c)
1 [2, 3, 4] 5 6
使い出すとこれは意外に便利です
**集合型リテラル [#f09310b0]
set関数を使って定義していた集合型を、ブレース{}に要素を...
>>> {x for x in range(10)}
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
ただし、空集合は辞書の表記と区別するため、set()で作ります
**辞書に関する変更 [#db21f431]
-has_keyメソッドの廃止。key in dictで統一。
-keys,itemsがリストではなくイテレータオブジェクトを返します
-辞書にも内包表現が使えるようになりました
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
**二進法リテラルの追加と八進法リテラルの変更 [#j0c2f219]
0b10101というような二進法表記で整数が書けるようになりまし...
なおbin(int)によって、整数値を二進法表記の文字列に変換で...
**整数型の統合(long型とlong型リテラルの廃止) [#a6c45224]
大きな数値(long整数)の後ろについたLの文字が無くなり、多倍...
**文字列の変更と拡張(1)文字列型(str型) [#t6130dcc]
従来のUNICODE文字列が廃止され、文字列は全てUNICODE処理さ...
**文字列の変更と拡張(2)従来のPython文字列(bytes型) [#hed6...
従来のPython文字列と同様のイミュータブル(不変)バイト列は...
**文字列の変更と拡張(3)変更可能なバイト列(bytearray型) [#...
Python3000では、よく使うバイト配列型が追加されました
**文字列の変更と拡張(4)テンプレート機能 [#bc57841d]
%演算子によるフォーマットに加え、formatメソッドによるフォ...
>>> '{0} you {1} is {2}'.format('All','need','Python')
'All you need is Python'
>>> '{1} you {2} is {0}'.format('All','need','Python')
'need you Python is All'
>>> '{a} you {c} is {b}'.format(a = 'All', c = 'need', b...
'All you need is Python'
なお、%演算子によるフォーマットは廃止されるようですので、...
*演算子、関数の変更と追加 [#s982bfaa]
**「整数/整数」の結果が違う [#k348fbd3]
除算記号(/ スラッシュ)の使い方が変更されました。2.x...
なお、その関係で、operatorモジュールのdiv関数が削除され...
**旧raw_input ⇒ 新input、旧input ⇒ 削除 [#h1028d0a]
入力された文字列を式として評価していたinputが廃止され、そ...
>eval(input('prompt'))
としましょう
**イテレータ/ジェネレータの呼び出しが微妙に変化 [#x589d7...
>itr.next()
でアイテムを呼び出していたイテレータ/ジェネレータが、な...
>next(itr)
で呼び出すことに(メソッドで呼び出すなら、itr.__next__())
Pythonを「オブジェクト指向プログラミング言語」と紹介して...
まぁ、普通ジェネレータ/イテレータは「回してなんぼ」です...
*文法、記法の変更 [#yf408b5b]
**print文、exec文の廃止 ⇒ print関数、exec関数の導入 [#p...
print文とexec文が無くなり、そのままの機能で関数扱いになり...
**バッククォート評価(``)や≠の(<>)表記の削除 [#qaa...
バッククォート評価は使った事ありませんでしたが、<>はPas...
バッククォート評価とは……~
>`1+2` ⇒ '3'~
というようなモノで、同じ機能は~
>repr(1+2) ⇒ '3'~
となります。
**リストの内包記法内の変数がローカルに [#xbbaa250]
2.xでもジェネレータはこの扱いでしたが、Python3000では、リ...
*λ(lambda)とその一族 [#h5c50f70]
**lambda文は健在 [#f8ae442f]
変更点ではないのですが、色々と噂されていたlambda文は健在...
**map,filterは、イテレートオブジェクトを返すクラスに [#ib...
内包記法で用済みかと思われたmapやfilterは、イテレータの...
**applyは廃止、reduceはモジュールに [#w373b36d]
applyに関しては、func(*arg)文法が使えるので、不要という...
*その他、廃止/変更された関数 [#e5c7f9f8]
**廃止された関数(追跡調査中のものも含む) [#bdcdb992]
> callable, coerce, execfile, file, reload, raw_input
**変更された関数 [#dfc5bc8a]
|reduce|→|functools.reduce|
|reload|→|imp.reload(module)[impはモジュールオブジェクト...
|intern|→|sys.intern|
***イテレータオブジェクトを返す関数 [#obcfed13]
> range, map, filter, zip
特にrangeは、ほぼ言語仕様に匹敵する重要関数なので、要チ...
**変更されたモジュール [#o5819214]
|新 dbm|←|旧 anydbm, dbhash, dbm, dumbdbm, gdbm, whichdb|
|新 html|←|旧 HTMLParser, htmlentitydefs|
|新 http|←|旧 httplib, BaseHTTPServer, CGIHTTPServer, Sim...
|新 tkinter|←|旧 全Tkinter関連モジュール(tutleを除く)|
|新 urllib|←|旧 urllib, urllib2, urlparse, robotparse|
|新 xmlrpc|←|旧 xmlrpclib, DocXMLRPCServer, SimpleXMLRPCS...
*オブジェクト指向プログラミング機能に関する変更 [#t75c8671]
**メタクラスの設定 [#h3825ede]
メタクラスの設定が、スロットではなく、規定クラスのように...
(旧)
class C:
__metaclass__ = M
...
(新)
class C(metaclass=M):
...
**propertyがデコレータで書ける [#z98fbc7c]
大した変更じゃないのだけど、あまりにどこでも話題にならな...
class C(object):
def getx(self): return self._x
def setx(self, value): self._x = value
def delx(self): del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
が、
class C(object):
@property
def x(self): return self._x
@x.setter
def x(self, value): self._x = value
@x.deleter
def x(self): del self._x
で、OK。とってもスッキリ。
**type~がclassに統合 [#e7718aca]
今まで<type 'int'>とか出ていたモノが、こっそり<class 'int...
*予約語(reseved words)に関する変更 [#td79d573]
**nonlocalの使い方 [#g232de56]
簡単に
>>> def f():
... a = 1
... b = 2
... c = 3
... def ff():
... a = 10
... global b
... b = 20
... nonlocal c
... c = 30
... ff()
... return a,b,c
...
>>> f()
(1, 2, 30)
>>> b
20
>>>
-その他の新規予約語……True, False, None, as, with
-廃止された予約語……print, exec (何れも関数に移行)
*Python3000についての資料 [#q75fc8a6]
-正式勧告文書 [[PEP3000:http://web.archive.org/web/200606...
-オフィシャル文書(09.01.04改正版)[[What's New in Python 3...
-「みんPy」の柴田さんの説明「[[もっと知りたいPython3000:h...
-上記の柴田さんたちの新連載「[[Python 3.0 Hack!:http://gi...
-Hatena::Diary[[2007-06-07プログラミング日記:http://d.hat...
-上記の元ネタ[[「Python 3000 Status Update(Long!)」:http:...
-Python3000によるプログラミング入門講座「やnでレPython」...
-マイコミジャーナル([[登場! Python 3.0 - 2系との違いを比...
-『初めてのPython』第3版向け用Python3移行の手引き[[「What...
*関連ページ [#vf2a75a0]
-[[Python一般について>Python]]
-[[ここがヘンだよPythonista]]
-[[What's New In Python 3.0の翻訳>What'sNewInPython3.0]]
*現状 [#r53f69fc]
-2012.02.08 Android用実装SL4A用のPythonは、未だPython2系...
*コメント [#bdc90f5f]
- sl4aにPython 3が実装されました! これでandroidはPython...
- I am not sure where you are getting your info, but grea...
- You're so interesting! I don't think I have read anythi...
#comment_nospam
ページ名: