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

■ このスレッドは過去ログ倉庫に格納されています
2009/02/19(木) 22:30:15
Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな?
そもそもあれは実用で使うには時期が早すぎるわけで、ここで
普通に語られても困る。
--------
別に
--------
細分化する必要性が全く感じられない。
各自がレスの内容を収拾選択すればいいだけ。
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)を使うとインターフェースを明示できるようになるよ。
2012/12/28(金) 04:50:03.07
web2pyの3系対応はいつ頃でしょうか?
2012/12/29(土) 01:19:00.59
巳年
2012/12/29(土) 01:32:21.18
>>542
欧米には関係無い話だと思うのですが…
2012/12/29(土) 02:46:51.65
そもそも干支を動物に対応させたのも関係無いし
2013/01/18(金) 20:19:23.75
最高にクールなpython3の参考書はどれですか?
2013/01/18(金) 20:57:46.27
Python3の書籍なんて何冊もないんだから全部買え。
自分に合った本は自分でしか見つけられない。
2013/01/20(日) 15:21:03.03
今んとこ本家ドキュメント一択
2013/01/20(日) 16:47:44.97
ほとんどshift-jisなんだけど時々違う文字コードが紛れ込んで文字化けしてるbyte列をデコードしたいのですが
こういう文字列として不完全なbyte列をデコードする関数は標準にはありますか?
2013/01/21(月) 00:56:44.79
>時々違う文字コードが紛れ込んで

無理
2013/01/21(月) 01:12:18.06
>>548
場所とエンコーディングが分かっているのならば自分でbyte列を分割して適切に
処理してやればいいんじゃないの

全自動でやってくれというのなら>>549の言うように無理だな
Shift_JISとして不正なbyte列を含んでいる場合はそこでデコードエラーになり、
その位置も取れる筈だけど、以下のような問題がある

1)人の目には明白に文字化けしているケースであっても常にShift_JISとして不正な
 byte列であるとは限らず、その場合は「何か問題がある」ことすら検出
 しようがない
2)文字化け部分が短い場合、自動でその文字エンコーディングを推測するのは
 非常に困難
2013/01/21(月) 23:47:35.90
まあ、完璧にやるのは無理としても、デコードエラーになったら違う文字コードを
試すとかしてそれなりにデコードするのは可能かもしれない。

でも、それ以前にそんなニッチな関数が「標準」にあると思う方がどうかしてる。
2013/01/22(火) 00:43:18.61
https://github.com/fumiyas/python-nkf

nkf のバインディングを置いとく
3で動くかは知らん
-g オプションは guess の略
>>551 が言うように完璧は無理 (guess)
2013/01/22(火) 12:02:39.81
>ほとんどshift-jisなんだけど時々違う文字コードが紛れ込んで
環境依存文字等では、shift-jisではエラーでもcp932だと通る事がある。
そういったケースではなく、まったく別の文字コードが紛れてる?

不完全な部分を正しいデコードしなくてもよいのであれば、
decodeの第二引数に'ignore'や'replace'を指定すると、
デコード出来ない文字は読み飛ばしたり適当な文字に置き換えて処理してくれる。
エラー関数はカスタマイズ可能なので、551の方法を試す枠組み自体は整ってる。詳しくはcodecsモジュール読んで。
2013/01/22(火) 13:15:07.10
エラーの時に別のエンコーディングを試すアプローチだけど
文字コードが混在したデータには使えなかった。エラーにならない文字だと単に文字化けする
2013/01/22(火) 16:21:57.76
誤誤誤
2013/03/09(土) 18:26:41.53
そろそろPython3.xが世界の実権握ったか
2013/03/14(木) 14:15:02.51
# module file : MyClass.py

class Body:
  pass

class MyClass(object):
  def __init__(this):
    body = Body()
    body.x = 0
    def SetX(x):
      body.x = x
    def GetX():
      return body.x
    this.SetX = SetX
    this.GetX = GetX

def New():
  return MyClass()

こうするほかにアクセス不能(?)なプライベートなプロパティをもつことは可能ですか?
2013/03/14(木) 14:17:17.67
マングルでいいだろ
2013/03/14(木) 15:47:13.31
>>557
完璧なプライベートなんてのは不可能なんだから諦めたら?

n = New()
n.GetX.__closure__[0].cell_contents.x = 123
print(n.GetX())

http://docs.python.jp/3.3/reference/expressions.html#atom-identifiers
560デフォルトの名無しさん
垢版 |
2013/04/07(日) 22:48:20.16
Python 3.2.4 and 3.3.1 have been released

ttp://www.python.org/download/releases/3.2.4/
ttp://www.python.org/download/releases/3.3.1/
2013/04/12(金) 23:35:40.57
おつ!
562デフォルトの名無しさん
垢版 |
2013/05/17(金) 11:03:20.28
Python 3.2.5 and 3.3.2 have been released
でたっすな
http://www.python.org/download/releases/3.2.5/
http://www.python.org/download/releases/3.3.2/
2013/05/17(金) 16:48:04.67
おつ!
2013/05/24(金) 19:53:43.32
日本Pythonユーザ会のサイトのダウンロードページでは
未だにPython最新リリースが3.3.0なんすけど
これは3.3.1以降の日本語化が終わってないってことでしょうか?

http://www.python.jp/Zope/Zope/download/pythoncore
2013/05/24(金) 22:51:03.02
インストーラーへのリンクは本家へ直リンなので
ユーザー会がページを更新していないだけだと考えられる
2013/05/24(金) 23:03:02.40
>>564のページは古かった、下のページで更新されている
http://www.python.jp/download/
2013/05/24(金) 23:27:08.67
>>565
ありがとっす
日本語パス上にあるスクリプトファイルを
起動できない事象を回避したいので早速本家からもらってくる

>>566
これは古かったですかスマンです
移行したとは気づかなかった…
2013/09/12(木) 09:34:12.71
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:\>python -V
Python 3.2.5

C:\>
569デフォルトの名無しさん
垢版 |
2013/09/12(木) 14:04:29.96
おいなりさんでおいなりさんを露出
2013/09/12(木) 14:08:56.45
水野あきこさんが好きです。
2013/09/19(木) 15:32:22.44
ビール

バイト

お前ら

ドライブ
2013/10/04(金) 18:28:42.30
tkinterのサンプルたくさん載ってるサイトない?
海外のでいいから
2013/10/04(金) 18:40:48.37
>>572
Py in my eye
2013/10/04(金) 19:13:49.37
http://www.tkdocs.com/tutorial/ もよくまとまってるよ
2013/10/04(金) 23:10:24.67
>>573
>>574

サンクス
2013/10/12(土) 02:20:33.56
NumPyもMatplotlibもPIL(Pillow)も、Webの各種フレームワークも3に対応した。
おいらはもうPython 3オンリーでやっていける。
2013/11/01(金) 08:49:25.54
案外すんなりと移行しちゃって
このスレも役目を終えたな
578デフォルトの名無しさん
垢版 |
2013/11/01(金) 11:59:20.37
うむ
2013/11/01(金) 12:12:54.83
>>577
もうPython3に逝っちゃってもいいんですか?
勉強しようとしたら論争がいつまで経っても終わらんなと思っていたところで
2013/11/01(金) 12:40:23.46
そもそも文法はたいして変わらんし
使いたいライブラリが3に対応してるかだけの話だよ元々
2013/11/01(金) 22:19:40.54
2でもfutureインポートで3の文法使えるから、それで慣れるのもあり
2013/11/02(土) 20:45:20.33
pillowなんて実装があったのか 知らんかった
2013/11/08(金) 11:49:39.62
pythonなんて誰が使うの?
2013/11/08(金) 19:00:46.29
理工系の研究者
2013/11/21(木) 00:56:54.41
Pythonコードと

ハリソンフォードって

似てるよね
2013/11/21(木) 02:08:44.41
George Python
2013/12/05(木) 23:48:41.47
は行の清音を表現しきれないシナチョン語だと似てるんだろうな
2013/12/06(金) 17:15:16.75
ν速+に帰れ
589デフォルトの名無しさん
垢版 |
2014/01/23(木) 14:45:38.77
このスレもう要らない
2014/01/25(土) 07:11:21.90
1年前はまだ良さげなライブラリとか見つけて3非対応でガッカリさせえられてたけど
ここ一年でだいぶ変わって来た気がする
多分1年後はもう問題無くほとんど全てが3に以降してるはず
2014/01/25(土) 13:31:30.87
1年後も同じこと言ってそう
2014/01/25(土) 15:47:59.73
いや、科学系とWeb関係でPythonを使ってるけど、もうほとんど移行可能だよ。
まだ新規に2.x書いてるの?
2014/01/25(土) 16:02:23.29
PyGTK や PyQt 使ったアプリケーションはいまだに 2 を使ってるものばかりだから
相変らず 2 で書いてる
2014/01/25(土) 16:57:35.90
PyQt自体は3でも動くよね。GTKは知らん
2014/01/25(土) 17:43:50.88
言葉が足りなかったか
既存の GUI アプリが 2 で書かれてるものだから
プラグインを書いたりするときに結局 2 が必要になっちゃうって話
2014/01/26(日) 04:45:55.53
2.x無視すると、キモい互換用コード書かなくて済むし楽だ
ついでに、コードもstrictな感じになるし
2014/02/04(火) 15:06:37.32
Python 3.xの新機能がよくわからなくなってきた
3.4でEnumライブラリが入るんだね
2014/02/09(日) 08:25:09.15
このスレは不要
2014/02/24(月) 21:00:32.37
ライブラリやAPIは問題ないけど、大学の先輩方が作った卒研の資産が動きません
コードが汚くてリファクタリングする気にもなりません
600デフォルトの名無しさん
垢版 |
2014/02/28(金) 03:08:19.79
はい
2014/03/30(日) 13:28:31.35ID:tbQ7GWuV
もう3.4か
2014/04/02(水) 13:04:21.57ID:ZPmhRuQE
test
2014/05/11(日) 19:33:54.54ID:gVc6cFZ0
asyncioとpathlibのせいで2は過去の物と切り捨てる覚悟ができた
2014/05/15(木) 01:50:17.28ID:A04fXO8I
Google App Engineさえ3対応したら個人スクリプトは3系に全面移行できる
仕事はまだまだ2系が多いけどなー
2014/05/15(木) 06:19:40.91ID:Mes52j2B
2使ってて3でも使える書き方をしておくのに
from __future__ import print_function
とか出来るけど

3使ってて2の機能(モジュールとか)を使う方法はある?
2014/05/21(水) 20:19:00.28ID:TendC8lx
python3でimport pylabすると「見つからなぇよ」と言われるけど2なら通る
わけわかめ
2014/05/22(木) 13:48:03.55ID:OVeCNX7v
>>606
基本的には2に対応したライブラリと3に対応したライブラリは別物だから、
それぞれインストールする必要がある。
python3用のpylabをインストールしたのに見つからないと言われるならライブラリのパスが正しくない。
2014/06/19(木) 19:13:22.57ID:hWlGDHRA
3.4とasyncioの組み合わせだとgcが不安定だな
609デフォルトの名無しさん
垢版 |
2014/06/28(土) 10:35:33.52ID:Vk+Le/F4
https://pbs.twimg.com/media/BrLina8CEAErBVg.jpg:large
2014/06/28(土) 22:50:08.92ID:tJ1i7EQB
ヤマカン?
611デフォルトの名無しさん
垢版 |
2014/09/25(木) 19:22:10.98ID:JwcgXp3I
WIN7 Python 3.4.1 64bitでGUI (wxPython)
D:\Python341\Scripts>pip install -U --pre -f h ttp://wxPython.org/Phoenix/snapshot-builds/ wxPython_Phoenix
612実は男
垢版 |
2015/04/28(火) 22:34:12.13ID:iGmhRd88
ぱいそんそわそわ
フォロリクよろしく(^з^)-☆

ややちゃん♂
https://twitter.com/minwqgmg

#ややちゃんかわいい
ややちゃんよりかわいいMTFなどいない
http://i.imgur.com/L7IX75Q.png
http://i.imgur.com/lkujqEZ.png
https://pbs.twimg.com/profile_images/590714340384382977/3_IE5FW8.jpg
http://i.imgur.com/t1dy6yB.jpg

#百合原まこきもいしね
http://light.dotup.org/uploda/light.dotup.org175301.jpg
https://twitter.com/mako_yurigahara
613デフォルトの名無しさん
垢版 |
2015/12/19(土) 10:24:02.14ID:mPfGcppx
プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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