Pythonのお勉強 Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/20(金) 00:34:56http://www.python.jp/Zope/
Python オフィシャルサイト
http://www.python.org/
Python 2.5
http://www.python.org/download/releases/2.5/
IronPython
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
まとめ wiki
http://www7a.biglobe.ne.jp/~yasozumi/python/wiki/
Pythonの入門書「みんなの Python」
http://www.amazon.co.jp/gp/product/479733665X/
Pythonのお勉強 Part13
http://pc8.2ch.net/test/read.cgi/tech/1157984472/
0232デフォルトの名無しさん
2006/10/25(水) 01:41:23そんなあなたにとっておきの解。
つ [C++]
オールドスタイルキャストしちゃえばどんなポインタも望み通りのクラスインスタンスになれるよ!!
ハ_ハ
('(゚∀゚∩ でもしぬるよ!!
ヽ 〈
ヽヽ_)
0233デフォルトの名無しさん
2006/10/25(水) 01:47:36まさかそんな基礎設計的な部分で「タイプがめんどくさい」とか・・・・?w
0234デフォルトの名無しさん
2006/10/25(水) 01:55:53そういうやつだと想像。
0235227
2006/10/25(水) 02:04:19こういうことだったのね。
a = ReturnsA()
a.__class__ = B
0236デフォルトの名無しさん
2006/10/25(水) 05:02:26>要するに、インターフェースを換えずに振る舞いを換えたり
>新たなインターフェースを追加したいと言うことです。
いくらなんでも矛盾してるだろ。いいたいことはわかるが。
つうか、こんなことができる言語ってなかなかないような気がする。
プロトタイプ指向でもない限り。
>>235
Pythonすげえ!
0237デフォルトの名無しさん
2006/10/25(水) 08:08:53Python を使ってデザインパターンの説明してるページとかないですか?
0238デフォルトの名無しさん
2006/10/25(水) 08:18:26pythonスゲェが、これは・・・・
0239デフォルトの名無しさん
2006/10/25(水) 09:00:470240デフォルトの名無しさん
2006/10/25(水) 09:42:110241デフォルトの名無しさん
2006/10/25(水) 10:44:50Adapterのことだよな?
ttp://www.python.org/dev/peps/pep-0246/
ttp://qwik.jp/zope3study/58.html
0242227
2006/10/25(水) 10:50:38要は、「(動的なクラス変更ができない言語のために発明された)
アスペクトとかデコレータとかをPythonでやるにはどうすればいいの?」
という質問なんでしょ。
動的なクラス変更ができるPythonなら、235で書いた(書かされた)通り、
「動的にクラスを変更すればできますよ」という答えが出てくるのは必定。
そこで>>236、>>235のような「それは反則じゃないのか」という反応が起きるのも予定調和。
そして、この流れ自体が、>>231が喝破したように、
>>224が仕掛けたメタクラス誘導のための釣り。
これに釣られて、227で墓穴を掘り、235でネタを提供させられ、
ついにはこの解説を書かされる羽目になったのが俺。
0244デフォルトの名無しさん
2006/10/25(水) 11:02:440245デフォルトの名無しさん
2006/10/25(水) 11:26:420246デフォルトの名無しさん
2006/10/25(水) 13:00:33正直、感動した。
まとまらない質問に、見事なまとめで答える。
Q&Aの見本のようなやり取りだと思った。
0247デフォルトの名無しさん
2006/10/25(水) 13:12:020248デフォルトの名無しさん
2006/10/25(水) 13:59:48if not '__host' in dir(self)
とかやってる私は変ですかね。
0249デフォルトの名無しさん
2006/10/25(水) 14:02:33>dir(self)
hasattr(self, '__host')
0250デフォルトの名無しさん
2006/10/25(水) 14:02:37みんな隠しているけど、ここはそんな人たちばかりだから。
0251デフォルトの名無しさん
2006/10/25(水) 14:22:37なるほど。
本当にこういう方法しかないんですか
>>250
?
0252デフォルトの名無しさん
2006/10/25(水) 15:11:390253デフォルトの名無しさん
2006/10/25(水) 15:14:30なるべく使わないようにしたほうがいい
0254デフォルトの名無しさん
2006/10/25(水) 16:01:480255デフォルトの名無しさん
2006/10/25(水) 16:08:04検索してもドキュメントの類を見つけることができませんでした。
唯一見つけた情報が下のDWの記事くらいで。
http://www-128.ibm.com/developerworks/library/l-cppeak2/
dispatchモジュールの使い方を学ぶにはどこを参照すれば
いいのでしょうか?
0256Python初心者
2006/10/25(水) 16:23:07Pythonのオブジェクト指向は他の言語とは
かなり違いますよね。
class PythonJoke :
X = 'Python'
if X=='Ruby':
print 'Yadaa! Ruby'
else:
print 'OK! Python'
PythonJoke()
PythonJoke->OP:
OK! Python
クラスが普通の関数と同じように使える…
>>199
クラスの定義文の外でクラス自体も、それから
生成したインスタンスも自由に変更出来る。
確かにパワフルな印象はあるが、これはこれで
使いこなすのは結構難しいような気がする。
特に多人数で開発するとき。
いちいちdir()で中味を確認しないとクラスや
インスタンスが使えない…、なんてことには
ならないのだろうか?
0257デフォルトの名無しさん
2006/10/25(水) 16:23:09お宅の鬼によろしく言っておいてください。
0258デフォルトの名無しさん
2006/10/25(水) 16:38:44そんなことをここで訊くのが間違っている。
こんなところに出入りしている暇があったら素直にソース嫁。
0260デフォルトの名無しさん
2006/10/25(水) 16:47:49おまいの貼り付けた記事に書いてあるだろうがー
0261デフォルトの名無しさん
2006/10/25(水) 16:51:35一応関連記事
ttp://www-06.ibm.com/jp/developerworks/linux/030606/j_l-pydisp.html
いいか、もうこんなとこに来るんじゃないぞー
0262デフォルトの名無しさん
2006/10/25(水) 16:52:090263デフォルトの名無しさん
2006/10/25(水) 17:42:500264デフォルトの名無しさん
2006/10/25(水) 17:44:55On Pythonって何?
おっぱいそんしか知らないぜ。
0265デフォルトの名無しさん
2006/10/25(水) 17:58:28雑誌原稿が書きたくて悔しいご本人だよ。
そっとしておいてやれ(ww
0266デフォルトの名無しさん
2006/10/25(水) 18:27:16うはwwwwwwwww
とんだ馬鹿面引っこ抜いちまった。
サイト管理者の方、すみませんでした。
0267デフォルトの名無しさん
2006/10/25(水) 18:32:46どっちも python.org の英文を元にした二次情報だろ.
悔しいのかも知れないが、こういうときは黙っておくのが男というものだよ.
0268デフォルトの名無しさん
2006/10/25(水) 18:59:530269デフォルトの名無しさん
2006/10/25(水) 19:05:51ネットを駆使して調べて
n=[1,2,3,4,5,6,7,8,9,10]
sum = [0]
for r in n:
sum = sum + r
print "sum[", r, "] =", sum[r]
みたいにしたのですが、このやりかたはPython的にはスマートではなかったりするんでしょうか?
0270デフォルトの名無しさん
2006/10/25(水) 19:14:29あと、print文も
print "sum[%d] =%d" % (r, sum[r])
みたいにするのがいいと思う。
0271デフォルトの名無しさん
2006/10/25(水) 19:15:04ネットで何を調べたのかは知らないでげすが、組み込み関数のreduceを使って
>>> reduce(lambda a, b: a + b, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 0)
55
とするのが、関数型言語的にはベタでスマートなやり方ですがPython的には
どっちでもいいでげす。
0272デフォルトの名無しさん
2006/10/25(水) 19:30:06>>271
アドバイスありがとうございますですm(..)m
0273デフォルトの名無しさん
2006/10/25(水) 19:32:26http://www.shido.info/py/
「おっぱいそん」ってこれか?
ググッてはじめて見たぞ。
こんな些末なサイトを引き合いに出す理由が分からん。
やっぱり本人だろ?
辺境のサイトにアンチがいるとも思えんしな。
0274デフォルトの名無しさん
2006/10/25(水) 20:27:590275デフォルトの名無しさん
2006/10/25(水) 20:48:580276デフォルトの名無しさん
2006/10/25(水) 20:51:080277デフォルトの名無しさん
2006/10/25(水) 20:52:51lambdaやreduceやメタクラスさえ使えれば満足なんだから。
0278デフォルトの名無しさん
2006/10/25(水) 20:57:02「おっぱいそん」と呼んで蔑むことにしましょう
0279デフォルトの名無しさん
2006/10/25(水) 21:09:37コレ動くの?
0280デフォルトの名無しさん
2006/10/25(水) 21:30:360281デフォルトの名無しさん
2006/10/25(水) 21:31:56sum[r] = sum[r-1] + r
としたいのかな
0282デフォルトの名無しさん
2006/10/25(水) 21:32:330283デフォルトの名無しさん
2006/10/25(水) 21:57:04つーか、ここって本当にPythonの本スレなのか?
0284デフォルトの名無しさん
2006/10/25(水) 22:03:21慣れればどうってことないんで、本スレと認識してOK
0285デフォルトの名無しさん
2006/10/25(水) 22:06:300286デフォルトの名無しさん
2006/10/25(水) 22:18:52いちいちURLさらすお前が本人だろ?
0287283
2006/10/25(水) 22:20:01MLやmixiのコミュも閑古鳥が鳴いてる。
Perlの次に人気がある(はずの)スクリプト言語のユーザー達は、一体どこで
情報交換してるのか不思議で仕方ない。
0288デフォルトの名無しさん
2006/10/25(水) 22:26:13多少荒れたとしても、この板の方がはるかにマシだ。
0289デフォルトの名無しさん
2006/10/25(水) 22:33:13sum = [0]
for r in n:
sum = sum + [r]
print "sum[", r, "] =", sum[r]
でした。
0290デフォルトの名無しさん
2006/10/25(水) 22:53:00http://www.cbook24.com/bm_detail.asp?sku=4839921709
0291デフォルトの名無しさん
2006/10/25(水) 23:06:43Pythonの解説があまりにも中途半端だと思った.
この著者本当にPython知ってんのかレベルの中途半端さ.
0292デフォルトの名無しさん
2006/10/25(水) 23:14:32もうレスは完結してるのに自分で勝手にやったんだろう?
教えてもらった君が言うのもなんだが、ちょっと暴走してるんじゃないか。
組み込み関数sum()のことも、展開した形に直されて実行されると知っているから、
"展開したらどういう構造になるのか?"と聞いたわけ。
そうしたら、"速度を気にするのなら使うべきではない。が、どうしても構造が気になるならファイル出力して見ろ"と
返答をいただいた。
これはつまり、組み込み関数sum()は遅い、少なくとも組み込み関数sum()を使うことで手打ちよりも速く最適化されるわけではないって言ってるんじゃないの?
これは、組み込み関数sum()が実行速度を落とす(結果論)以外の何にあたるの?
一体誰が、組み込み関数sum()で実行速度が遅くなる"理屈"を聞いたんだよ。そこも勝手な勘違いだろう。
組み込み関数sum()を使うと実行速度が遅くなる、 答えは YES これでいいんだろ? これが結果だろ?
それが>>274の"組み込み関数sum()を知らないスマートな初心者の集まるスレはここですか?"ってことだろ?
何を余計な理屈を言って、それで"初心者の集まるスレはここですか?"ですか?w
初心者の集まるスレはここですか?ってw
お前、どんな内容であろうと、叩くか、人の足元見て博識ぶって偉そうにするかしか能がないだろ。
やらされたくなかったらレス自体しなければいいこと。
レスさえしなければ、俺の質問は流されて終わるか、他の誰かが知識を分けてくれるか、ただそれだけ。
Pythonしか使えないやつというより、俺も含めてこのスレ全体が腐ってるんじゃねーか。
俺と同類だよ同類。俺もこの程度でファビョンするくらいだから低俗なんだろうがな、
お前らも同等な低俗さだよ。同じような人間として言わせてくれよな。否、同じ生き物として認めたがらないんだろうけどな。
まぁ、このレス以降もう来ないから、テキトーに釣られときな。
教えてくれてありがとーな。
0293デフォルトの名無しさん
2006/10/25(水) 23:15:500294デフォルトの名無しさん
2006/10/25(水) 23:19:270295デフォルトの名無しさん
2006/10/25(水) 23:21:250296デフォルトの名無しさん
2006/10/25(水) 23:22:24答えは YES
0297デフォルトの名無しさん
2006/10/25(水) 23:31:40>>> int = 0
>>> int("123")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: 'int' object is not callable
0298デフォルトの名無しさん
2006/10/25(水) 23:45:44と言うこともあり、Pythonで作って配布する事になった。
しかし、py2exeを試したが、DLL付属でとてもサイズがデカイ。
IronPythonも考えたが、相手方の環境を考え見送った。
結局py2exeで作った実行ファイルを渡したが、「サイズでかい」、とか
「何このDLL」とか、色々言われてしまった。
次に展開する時は、「前のツールと同じ場所に置いて」とでも言えばいいのか。
Pythonで作ったツールとか、社内とかで配布したい場合どうしてる?
0299デフォルトの名無しさん
2006/10/26(木) 00:12:41一番いいのは自分で調べることだと思う。
ほぼ全ての情報はWebにまとまってる。
0300デフォルトの名無しさん
2006/10/26(木) 00:16:21俺は、会社の規模がさほど大きくないこともあって、問答無用で
Python をインストールさせるが...
それより、IronPython を使わせる方がハードル高い気がする。
0301デフォルトの名無しさん
2006/10/26(木) 00:21:15記事で見たら付属ファイル無いとかなんとか、
夢みたいな良い事ばかり書いてあったな。
0302298
2006/10/26(木) 00:27:43Cygwin環境があれば、強制的に入れさせることも「あり」なんですけどね・・・。
setup.pyにWINDOWSフォルダにPython24.DLLをコピーする処理を書こうかとも
思ったが、後で問題になるかも知れないと思い断念。
早いところVBスクリプトとかJスクリプトとかと同じ扱いになって欲しい<Python
0303デフォルトの名無しさん
2006/10/26(木) 01:00:14とかできると嬉しいんだけどな…。
0304デフォルトの名無しさん
2006/10/26(木) 01:10:26あと,MLは時代遅れかもな。
最近の奴はBlog + ソーシャルブックマークとかで情報収集してるんじゃね?
0305デフォルトの名無しさん
2006/10/26(木) 01:21:021つのexeファイルにパッキング
圧縮すれば小さくなるし
0306デフォルトの名無しさん
2006/10/26(木) 01:37:02それ動く?
なんで リスト が必要ではない(と思われる)ところで
[]を書こうとするのか?
0307デフォルトの名無しさん
2006/10/26(木) 02:14:22sum = sum + [r] よりも sum.append(r) の方が効率的で速いよ。
>>303
car, cdr = x[0], x[1:] と書くのと大差ないよーな。
0308デフォルトの名無しさん
2006/10/26(木) 02:38:21> Pythonで作ったツールとか、社内とかで配布したい場合どうしてる?
実際にそういう状況になったことはないけど、もしやるとしたら
1.作ったアプリの方は Python で言うところの「パッケージ」にして(ディレクトリ毎に __init__.py を書いて)
setup.py を書いて Windows 用インストーラを生成して配布。
2.Windows 版 Python も Python.org が配布している Windows 用インストーラを推奨。
3.アプリの実行は
a)DOS 窓でパッケージ内の foo.py を実行してもらう(拡張子は .py のままにする)
b)Python 2.5 を使うことにして、新設された -m オプションを使ってパッケージ内の foo モジュールを起動。
c)Tkinter で(←ここ重要)簡単な GUI をつける。
といった方法を採用。ショートカットの作成を推奨したり
.bat ファイルを用意するぐらいはやってもバチは当たるまい。
とにかく Windows 用インストーラでサクサク、というのが敷居を下げるコツのような希ガス。
アンインストールも簡単で後腐れがなければなお良い(これもお試しユーザにとっては重要)。
0309デフォルトの名無しさん
2006/10/26(木) 03:01:29結果的にファイルがいっぱいあっても、インストーラ一発でインストールできるなら
素人さんは文句言わないような気がする。
0310デフォルトの名無しさん
2006/10/26(木) 03:08:410311デフォルトの名無しさん
2006/10/26(木) 07:56:13やりかたが分からなかったから
とりあえずやりたいことを実現するために出来ることをやってみたら
この形が一番始めにできたからです
いわばオブジェクト指…思考です!
0312デフォルトの名無しさん
2006/10/26(木) 10:11:450313デフォルトの名無しさん
2006/10/26(木) 12:52:46って使ってる人少ない?
0314デフォルトの名無しさん
2006/10/26(木) 13:05:590315デフォルトの名無しさん
2006/10/26(木) 13:39:09オブジェクト指向風のスタイルも
そつなくこなすのがPython的にいけてるスタイル
0316デフォルトの名無しさん
2006/10/26(木) 13:55:53ttp://www.okisoft.co.jp/esc/python/iron-python-intro.html
0317デフォルトの名無しさん
2006/10/26(木) 14:20:03「本人乙」とか言われるぞ!!
0318デフォルトの名無しさん
2006/10/26(木) 17:31:02インスコ完了
0319デフォルトの名無しさん
2006/10/26(木) 18:05:42scipyスーパーパック対応待ち。
0320Python初心者
2006/10/26(木) 20:47:47ねぇ、
>>199
とか
>>256
なんかの問題に関して、Python関係の本や雑誌には
一切触れられてないが、ここに集う人々にとっては
全て織り込み済み?
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
…
個人的には、結構
ugly,implicit,complex and complicated
な面白い話題じゃないかと思うが…
例えばC言語スレなんかでは、
>scanfを暴走させるのはスキル不足
>getsを使うのは知識不足
>strtokでハマルのは理解力不足
>よって、馬鹿はscanf, gets, strtokは使わない方が良い。
「堂々と」言語仕様の問題点を指摘していたような
記憶がある。
0321デフォルトの名無しさん
2006/10/26(木) 21:34:39ついうっかり間違えて使うようなバグまがいの仕様ではないし
上級者しか使えない言語は問題だけど
上級者しか使わない言語機能は問題にはならない
0322デフォルトの名無しさん
2006/10/26(木) 21:53:320323デフォルトの名無しさん
2006/10/26(木) 21:56:180324デフォルトの名無しさん
2006/10/26(木) 22:14:180325デフォルトの名無しさん
2006/10/26(木) 22:17:49323に同意。それらの言語仕様の何がどう問題なの?
トリッキーなことができるのと、実際にトリッキーなことをやるのとは違う。
トリッキーなことをしなくても Python プログラムは書ける。
Python は法律じゃない。トリッキーな抜け穴があっても誰も困らない。
0326デフォルトの名無しさん
2006/10/26(木) 22:27:47の区別がなくて、関数やクラスの定義を実行時に解釈する物が殆ど。
クラス定義が実行時に解釈されるんだから、たとえばメソッドの書き換え
が実行時に出来るかどうかは、その属性が外から変更できるかどうか、の
問題に帰結する。
トリッキーだと思うかどうかは読む人のバックグラウンド次第じゃないか?
lambdaとかクロージャとかの経験があれば、あってよかった、ってなもんかも。
そういう話じゃなくて?
0327デフォルトの名無しさん
2006/10/26(木) 22:28:00言語仕様の問題点?古い時代の標準ライブラリの問題点だろ?
0328デフォルトの名無しさん
2006/10/26(木) 22:29:320329デフォルトの名無しさん
2006/10/26(木) 23:07:480330デフォルトの名無しさん
2006/10/26(木) 23:23:53特徴を否定的に表現して、英語でなんとかって言うらしいんだけど、なんだっけ?
0331デフォルトの名無しさん
2006/10/26(木) 23:28:11There's Only One Way To Do It
かな?違うかも
■ このスレッドは過去ログ倉庫に格納されています