【実験台】 Python 3.0 のお勉強 Part 1 【非互換】

■ このスレッドは過去ログ倉庫に格納されています
2009/02/19(木) 22:30:15
Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。
--------
別に
--------
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。
2012/06/03(日) 01:22:48.34
3系の日本語のリファレンスとかってまだないんだっけ?
442デフォルトの名無しさん
垢版 |
2012/06/06(水) 01:10:16.18
>>441
レッツ翻訳
2012/06/07(木) 00:46:26.89
>>441
つスピードラーニング
444デフォルトの名無しさん
垢版 |
2012/06/08(金) 13:28:46.24
444
2012/06/08(金) 16:09:34.25
政府は8日の閣議で、米インターネット検索大手グーグルの地図検索サービス「グーグルマップ」が、
竹島(島根県)を韓国領と誤解を与える表記をしている問題に関し、同社が対応を検討しているとする政府答弁書を決定した。

http://sankei.jp.msn.com/politics/news/120608/plc12060813260015-n1.htm
446429
垢版 |
2012/06/09(土) 08:14:49.57
http://ikura.2ch.net/test/read.cgi/dataroom/1324189253/
2012/06/09(土) 20:28:27.03
python3の変更点を見ていて疑問に思ったんだけど、
どうして関数定義時にタプルを仮引数として使えなくしたの?
python2でいうと
def f((a,b),c): print a,b,c
のような書き方。
これ便利だったのに…
2012/06/09(土) 20:32:17.37
自己レスだけどPEP 3113か
ちょっと読んでみる。
449デフォルトの名無しさん
垢版 |
2012/09/04(火) 00:54:12.85
nonlocal...
2012/09/11(火) 20:04:41.69
ツン期からデレ期に移行したPython 3を学ぶなら「みんなのPython 第三版」がいいよという話
http://coreblog.org/ats/minpy-3rd-has-been-published

この本ってちゃんとver3.3に対応してるんかな
451デフォルトの名無しさん
垢版 |
2012/09/11(火) 23:49:25.28
タプルの例がIPアドレス使った奴から変わってるかな?
2012/09/14(金) 02:30:41.28
>>450

とても素晴らしい表紙で,担当編集者の方には大変感謝しております。



これって絶対皮肉だと思う。
453デフォルトの名無しさん
垢版 |
2012/09/15(土) 03:10:39.39
>Rubyは,えーと,えーと,「バージョンって言い方なの?」って体制が病あーりんアイドルだからプログラミングとか分かんない\(^o^)/

何言ってるかわからんw
2012/09/15(土) 23:58:43.60
>>452
愛されてるよ
ttps://twitter.com/yukihiro_matz/statuses/243985245219717120
2012/09/21(金) 14:14:57.92
3.3に移行したいのに遅すぎる
3.1の2倍、実行時間かかるぞ
2012/09/21(金) 14:44:34.27
こういうやつか
ttp://bugs.python.org/issue14687
2012/09/22(土) 10:36:59.91
pypyの3系対応来てくれ
2012/09/22(土) 17:07:24.94
欲しいならここに寄付してこい
http://pypy.org/py3donate.html
2012/09/22(土) 17:31:41.38
寄付額がなかなか増えない・・・欲しがっている人少ないね
2012/09/22(土) 17:55:15.12
2で間に合うからな
3にするメリットが全然ない
2012/09/30(日) 14:42:22.10
Python 3.3.0 was released on September 29th, 2012.
http://www.python.org/getit/releases/3.3.0/
462デフォルトの名無しさん
垢版 |
2012/09/30(日) 15:22:31.29
台風でそれどころじゃない
2012/09/30(日) 23:24:21.89
>>381
夢のような話だったな・・・
2012/10/03(水) 23:47:54.75
>>450
3.3では u"〜" 表記が復活する、というのは書いてあった。

>>451
そのまんま。
あと、「2を20乗して1ギガバイトに相当するバイト数を計算しています」という
間違いも直っていない(2の20乗バイトは1メガバイト)。
2012/10/04(木) 04:18:42.94
>3.3では u"〜" 表記が復活する

3に乗り換える意味が益々無くなる
2012/10/04(木) 04:57:15.56
unicode型()
2012/10/04(木) 10:47:13.35
>>465
3.3は、文字列リテラルにuつけてもよくなるだけで、uはつけなくともいいんだぞ
2.x系のソースをより移植しやすくするための措置らしい
2012/10/04(木) 21:25:39.42
「移植しやすく」というより、2と3の両対応のスクリプトを書きやすくするためらしい。
2012/10/05(金) 02:58:20.76
益々3に乗り換える意味が無くなる
2012/10/05(金) 06:50:56.91
>>468
両対応のスクリプト書くなって方針じゃなかったの?
2012/10/05(金) 12:19:15.91
世の中的に3系イランモードなんかいな。
個人的には慣れてしまえば使いやすくていいもんだと思うから
はよ3系が主流になってほしい。
2012/10/05(金) 13:52:59.04
u付けて2でも動くよ〜
って喜んでる見たいだけどさ
2で動くんだったら3要らなくね?
ってなるよね
2012/10/05(金) 14:50:40.66
>>468
from __future__ import unicode_literals があるので
新規で両対応のコードを書くならそっち使う。

3.3では u"" は何もしないので、わざわざ使う利点はない。
3.2ではエラーになるので、寧ろ互換性を損ねてる。
2012/10/06(土) 12:57:35.62
移植しやすくなるのは事実だろ
2012/10/06(土) 13:00:56.12
u付き復活とかなんか必死だなとは思った

3のみ対応の素敵ライブラリでも出てこないと使う気が起こらない
そういうのもう出てたりしないのかな
2012/10/06(土) 13:16:55.44
いちおう3.3が2系を完全に切り離したリリース(今後2系はもうリリースしない)
と言われているけどな。ある意味やっとこさスタートラインともいえるが、どうなんだろうな。
477デフォルトの名無しさん
垢版 |
2012/10/06(土) 15:39:31.68
u付き認めると移植はしやすくなるかも知れないけど、
3への完全移行にはかえって仇になると思うな。
2012/10/06(土) 15:45:08.23
ひとつ復活を認めると、あれもこれもでガンガン不要として切り捨てたものが復活して
結局2と同じものになりそうだな
2012/10/06(土) 15:50:58.36
D言語のgdgdの再現プレイを見ているようだ
内部崩壊を狙う埋伏の毒が居るのかもしれん
2012/10/06(土) 16:11:13.63
http://www.python.org/dev/peps/pep-0414/
PyConJPを隠れ蓑に松江に行った可能性が微レ存
2012/10/16(火) 20:20:50.71
スレッド乱立荒らし出没中につき
dat落ちしないように保守
2012/10/18(木) 10:06:35.39
3 対応ってライブラリもCバインディングが含んでたら
buildし直さないと使えないんだな

まだ archぐらいじゃないか
3系列を薦めてくるの。ここから移行にはもうしばらく時間は掛かりそうだ…
2012/10/18(木) 10:29:22.23
たしかUbuntuが次から
2012/10/19(金) 17:03:59.64
Ubuntu 12.10 でPython 3.2が標準で載るようになったね
2012/10/19(金) 20:24:25.93
http://distrowatch.com/table.php?distribution=ubuntu

はじめにbuiltinで入ってるのは 2.7.3

あたらしいのを使いたいなら
$ sudo apt-get install python-3.2-dev
$ sudo apt-get install python-3.3-dev

もしくは python3-dev で 3.2 が入る

どのみち後からいれないと駄目だ。次と言うと 13.4 からか
3.2 と 3.3 の違いがよくわからんが…
2012/10/19(金) 21:05:49.65
http://cpplover.blogspot.jp/2012/10/ubuntu-1304raring-ringtail.html
>また当初、Ubuntu 12.10で、CanonicalはPython 3.2に移行し、Python 2系列は
>デフォルトではインストールしない予定だった。Python 3はPython 2に対して
>破壊的な変更を含んでいる。つまり、Canonicalが直接サポートするソフトウェア
>でPythonを使うものは、すべてコードをPython 3.2で動作するように移植しなけ
>ればならない。残念ながら、その移植作業は間に合わず

http://news.mynavi.jp/news/2012/10/19/181/
>Python のバージョンをPython 3.2へ移行
>標準のGNUツールチェインをGCC 4.7.2に変更
>標準のJavaツールチェインをOpenJDK7に変更

mynavi プレスリリースする前に確認しようよ
まだ移行してないし
2012/10/20(土) 23:42:03.11
from __past__ import unicode_literal
次は何だ?
2012/10/21(日) 02:31:07.72
^o^
2012/10/21(日) 20:20:59.58
これはいい変更。
>>> open("aho.txt")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'aho.txt'
2012/10/22(月) 09:21:00.99
従来はIOErrorだったのが、FileNotFoundErrorを返すようになったのか。よいね。
2012/10/22(月) 10:48:37.46
pgr
2012/10/23(火) 01:26:14.43
web2pyはいつ頃対応しそうですか?
2012/10/23(火) 18:59:37.38
web3py
2012/10/30(火) 12:02:17.58
おっぱいもみたい
2012/11/03(土) 15:04:33.11
「おっぱい揉みたい」なのか「おっぱいも見たい」なのか、それが問題だ。
2012/11/03(土) 20:12:29.56
どっちもしたいから何も問題じゃない。
2012/11/03(土) 20:19:52.75
見ないで揉みたいに一票
2012/11/03(土) 20:37:20.00
みたい + もみたい + すいたい
2012/11/05(月) 10:45:01.16
http://askubuntu.com/questions/103469/how-do-i-change-my-pythonpath-to-make-3-2-my-default-python-instead-of-2-7-2

まぁ二つ載ってても(むしろ載ってないと困る)困らない
やってみると意外と
2012/11/05(月) 17:30:30.21
よく考えたら、おっぱい見るのはそこらに画像が転がってるから簡単だった。
だから揉みたいが正解だな。
501デフォルトの名無しさん
垢版 |
2012/11/05(月) 17:37:12.93
Python はじまったな

窓の杜 - 【NEWS】Microsoft、「Python Tools for Visual Studio」v1.5を正式公開
http://www.forest.impress.co.jp/docs/news/20121105_570958.html
http://www.forest.impress.co.jp/img/wf/docs/570/958/image3.jpg
http://www.forest.impress.co.jp/img/wf/docs/570/958/image2.jpg
2012/11/05(月) 23:35:56.49
でもお高いんでしょう?
2012/11/06(火) 00:38:07.56
expess edition だと plugin 使えないかんな!
と py3k に移植完了したコードを 2.7系に戻すそんな本末転倒な場面もあったり

でも os だってダウングレード権とかある。そんな状況が発生するのも別段おかしく
2012/11/09(金) 08:46:04.36
yabaiyo
&nbsp;indent
&nbsp;&nbsp;source
貼れないよ
2012/11/09(金) 11:52:08.86
3系のメリットとデメリットを教えて下さい。
2012/11/09(金) 19:39:18.99
>>1-504
2012/11/12(月) 09:58:16.07
■python3系のメリット
・文字コード周りがすっきり unicode/str地獄に悩まされなくて済む
・今後便利な機能がどんどん実装される 個人的にイテレータ周りは相当良くなると思う
・パフォーマンスは最新3.3で2系をほぼ凌駕した 地味な所でどんどん性能改善してるので今後期待できる

■言語自体のデメリット
・ほぼ無し あえて言えば人によってprint文が若干面倒に感じるぐらい 言語自体は間違いなく良くなってる

■2->3への移行に伴うデメリット
・現有資産の書き換えが必要 特に文字コード周りは大幅な書き換えが必要
・まだ3系に対応していないライブラリが多い
 著名どころでも非対応多いし、対応してても枯れてないのでおかしな動きしたり


適当だけどこんなところかな>>505
とにかく非対応ライブラリの問題が根深いですね
既に対応してるライブラリでもテキスト処理関係のライブラリはまだバグが多い(lxmlとか)
2012/11/12(月) 10:55:17.54
文字コード周りがすっきり unicode/str地獄に悩まされなくて済む
はずなのに 2 からの移行で悩まされるのはほとんどこの問題とか
2012/11/12(月) 10:56:05.97
Perl5->6ほどの格差はないんだよね。
2012/11/12(月) 11:47:13.68
Python3の唯一のデメリットはまだ枯れてないことだな。

例えばPyArg_ParseTupleの引数 s と s* の区別がきちんとできないライブラリが
標準ライブラリにも混じってるから困る。
2012/11/12(月) 12:59:34.82
スレッドまわりはどうなの?
2012/11/12(月) 14:33:00.52
そういえば zipfile が utf-8 固定になってる問題は直ったの?
513デフォルトの名無しさん
垢版 |
2012/11/19(月) 04:26:23.09
ぼくちんはwxPythonが3.3に対応したら移行するでち
それまでは2.7で頑張りますでち
2012/11/19(月) 07:53:42.59
>>513
me, too.
2012/11/21(水) 03:04:20.49
つまり永遠に移行できないと
2012/11/21(水) 07:55:52.26
そのうち4が出そう
2012/11/21(水) 22:21:50.91
wxは本家が次期バージョンで下位互換捨てる方針だからそれにあわせるんじゃねえの
2012/11/27(火) 00:10:10.19
パイソンでグラフプロットするにはどうすれば良いですか?
2012/11/27(火) 00:19:56.44
matprotlibでも使えばいいんじゃね
2012/11/27(火) 00:21:46.80
PIL
2012/11/27(火) 01:12:51.65
ロックは死んだ
2012/11/27(火) 10:04:49.87
>>519
何それ?
俺の知ってるライブラリと違う。
2012/11/27(火) 15:09:18.27
matplotlib
2012/12/01(土) 23:23:18.77
辞書オブジェクトのキーを属性名、バリューを値に持つようなクラスってつくれますか?

d = {'hello', 'world'}
obj = X(d)
print(obj.hello) # world

こんな感じにしたいんですが・・・
2012/12/02(日) 00:04:21.12
class ReadOnlyAttr(dict):
 def __getattr__(self, key):
  if key in self:
   return self[key]
  raise AttributeError(key)

spam = ReadOnlyAttr(hello='world')
spam['ham'] = 'egg'
print(spam.hello, spam.ham)
526525
垢版 |
2012/12/02(日) 00:07:43.12
あっ、別に読み取り専用ではなかった
2012/12/02(日) 21:51:37.27
読み取り専用辞書 types.MappingProxyType が 3.3 に入ったね
以前のdictproxyからの変更、インスタンスが作れるようになってる

もう一つ3.3の話題、丁度新しい型が追加されてた
クラスやnamedtuple等よりは辞書寄りで、単に辞書データへ属性アクセスしたい場合に使える

ns = types.SimpleNamespace(hello="world")
2012/12/02(日) 21:58:49.14
改善された点
__getattr__を使う方法や、インスタンスの __dict__ へ追加する方法では
名前空間を共有することになるので、他の属性との名前の衝突には注意が必要になるけど

SimpleNamespaceは __xxx__ 形式の属性しかないので、比較的運用が楽。
辞書が必要な場合は、ns.__dict__ が使える

従来の方法に対するデメリットは、サブクラス化してメソッド追加が(多分?)出来ない点
2012/12/03(月) 00:23:40.62
その他、用途別。辞書ライクなデータを属性アクセス可能にする方法

# A
color = {"red":0, "green":0, "blue":0, "alpha": 0}
みたいに、小規模・フィールドが固定なデータ構造だったら namedtuple

# B
フィールドは固定で、本来なら属性にする所だけど
数が多いので外部リソースから読み込んだりして一時的に辞書で扱ってるのを
纏めて属性アクセスできるようにしたい。用途的に名前衝突の心配がない場合

self.__dict__.update({"hello":"world"})
2012/12/05(水) 17:33:26.63
不動少数点数にマッチする正規表現てどう書きますか?
2012/12/05(水) 17:56:19.39
不動ということは固定長か
2012/12/05(水) 19:59:25.62
しかも小数ではなく少数と来たか。
2012/12/07(金) 21:54:57.34
IronPythonて学ぶ価値ある?
2012/12/09(日) 00:48:50.98
>>533
学ぶ価値がないものなんてない
2012/12/09(日) 09:15:58.18
SimpleNamespaceって
>>> ns = type('SimpleNamespace', (), {'hello': 'world'})
じゃいかんのか
2012/12/09(日) 10:16:08.81
>>533
IronPythonはPythonから標準モジュールを抜いて、.NET フレームワークが使えるようになっただけ。
PythonとC#を学んだ方がいい。
2012/12/09(日) 10:45:43.09
>>534
一時的な用途で属性アクセス専用なら使えるけど、あまり積極的にはお勧めしない。

汎用の辞書としては、__dict__が他の属性と混ざってるので、扱いが面倒になる => 辞書のメソッドが使いたい場合、シリアライズしたい場合等
この点、SimpleNamespaceの方では__dict__でクリーンな辞書を参照できる。

後、ユニークなクラスを作ることになるので、別のインスタンスを作っても共通の親が無く
isinstanceでの判別がしにくい等、細かい点で手間かかる事になるかもしれない。
2012/12/09(日) 11:33:07.76
__dict__と混ざるのはメリットでもあるしデメリットでもあるんじゃないの
後この手のコンテキストで型チェックってあんま意味がないような気がする
実行時例外をそのままスルーした方がいいような
>>535は一行とはいえ黒魔術的だからSimpleNamespaceの方がいいんだろうけど
2012/12/10(月) 05:44:35.09
用途を明確にしたほうがいいかな

汎用コンテナとして、辞書を属性アクセス可能に拡張するなら、
辞書のサブクラス作るのが順当なアプローチだと思うけど
データと属性の名前空間が混ざるのはデメリット

オブジェクトの属性を辞書で一括更新する場合は __dict__ を利用
但し、クラス変数だと __xxx__形式のメソッドが混ざってくるのと__dict__が dictproxy(mappingproxy) になるので
インスタンス変数の__dict__を利用する。
2012/12/10(月) 06:02:31.59
>>538

> 後この手のコンテキストで型チェックってあんま意味がないような気がする
> 実行時例外をそのままスルーした方がいいような

型チェックが冗長になる場面では基本的に同意だけど、
出来るけどやらないのと、そもそも出来ないには隔たりがある。

Duck-Typeの柔軟性を活かす為に、暗黙のインターフェースを用いる方法は、
抽象基底クラス(abc)を使うとインターフェースを明示できるようになるよ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況