Pythonのお勉強 Part17

このエントリーをはてなブックマークに追加
1ミスターパイソン
2デフォルトの名無しさん:2007/02/16(金) 17:20:47
おっpy
3デフォルトの名無しさん:2007/02/16(金) 17:25:02
門弟
4デフォルトの名無しさん:2007/02/16(金) 17:25:54
  _  ∩
( ゚∀゚)彡 おつぱい!おつぱい!
 ⊂彡
5デフォルトの名無しさん:2007/02/16(金) 17:33:31
おっぱい
6デフォルトの名無しさん:2007/02/16(金) 19:43:39
職場でVBSでツール組む人がいて、それを自分がPythonに(勝手に)移植してる。
実際comtypes入れるとVBSでできる作業はほぼ全てPythonでできるんだよね。
ExcelVBAに移植する時に困ると思って、PythonでExcelVBAに直に書ける仕掛けも作った。

そいつが最初からPythonで書いてくれないかと思うこの頃。
7デフォルトの名無しさん:2007/02/16(金) 22:37:32
matlabのインターフェイスがいくつかありますが
どれがおすすめなのでしょうか?
8デフォルトの名無しさん:2007/02/17(土) 01:55:26
おっ、Pythonスレ。
9デフォルトの名無しさん:2007/02/17(土) 02:35:30
>>6
> PythonでExcelVBAに直に書ける仕掛け
これもうちょっと詳しく聞かせて
10デフォルトの名無しさん:2007/02/17(土) 02:37:39
>>6
蛇嫌いな俺もちょっと気になった。kwsk
11デフォルトの名無しさん:2007/02/17(土) 09:38:16
pythonでxul使ってgui作れるようにはならないの?
12デフォルトの名無しさん:2007/02/17(土) 21:22:31
python lispインターフェイス
http://mail.python.org/pipermail/python-list/2007-January/423984.html
これ以外にもlispのインターフェイスってあった?
13デフォルトの名無しさん:2007/02/17(土) 21:56:15
http://boost.cppll.jp/HEAD/libs/python/doc/
Boost.Python
c++へのインターフェイス
146:2007/02/17(土) 22:55:48
>>9,10
非常に泥臭い作業だけど、単純にPythonに実行させるDLLをExcel側で読み込んで
Excelのオブジェクトとかも一緒に渡すだけ。
ExcelVBAに直に書くにはPythonソースそのものを文字列としてVBAに取り込む必要がある。
普通はPythonソースは別に書いてVBAではファイルを取り込むだけでやっている。

実はもうちょっと高度な事もやっていて、ExcelのイベントハンドラをExcelVBAを
介さずにPythonで受け取ったりもやってる。そのインタフェースはC++とCOMで組んでるから
いつもVBAソースに「おまじない」と称してDLL関連の読み込みと起動をしている。

COM系の知識あれば誰でもできるし特に難しい事もやってないけど、面倒だから誰も
やってない様な代物。
15デフォルトの名無しさん:2007/02/17(土) 22:59:23
python WSHじゃないのか
166:2007/02/17(土) 23:16:40
ちなみに、ExcelVBAでできるという事は、EnvDTEでもできるという事。

自分は組み込み屋だが、Win動作するシミュレータ使うんでVC++系は必須になる。
クローンコード解析処理をPLYで組んであるんで、それと連携させて関数分割の
指標を出したりしてる。

上に書いたのは、別にEnvDTE経由でなくてもいいんだけど、インクルードフォルダパス
とかわざわざ設定するの面倒だから、COM経由で全部渡しちゃう。

Pythonは他言語・環境への親和性が高すぎて手放せない。特にMS COMとの連携強力すぎだろ。
176:2007/02/17(土) 23:21:32
>>15
イメージ的にはそんな感じ。
でもPythonでCreateObjectするのは嫌、という視点で作ったモンで。
18デフォルトの名無しさん:2007/02/18(日) 01:32:24
19デフォルトの名無しさん:2007/02/18(日) 01:54:54
委譲(デリゲート)での__getattribute__の使い方が分りません。
  従来の__getattr__() は、解決できない属性名の時だけ呼ばれるが
  __getattribute__() は、属性値の取得が必要になったときに、常に呼ばれるらしいのですが。

まず、__getattr__でのサンプル。

class wrapper(object):
def __init__(self, obj):
self.__wrapped = obj # obj を組み込む。
def __getattr__(self, attrname): # attrnameは、知らない名前の属性が来たら呼び出される
return getattr(self.__wrapped, attrname) # 組み込まれたオブジェクトにgetattr 関数で処理を委託。

l = wrapper([]) # リストを引数にwrapper クラスを呼び出すと、リストにできる操作なら全てできる

(実行すると、正しく動作します)
>>> l.append(333)
>>> l.pop(0)
333
20デフォルトの名無しさん:2007/02/18(日) 01:56:08
ここで、__getattr__を__getattribute__に置き換えます。

class wrapper(object):
def __init__(self, obj):
self.__wrapped = obj # obj を組み込む。
def __getattribute__(self, attrname):
return getattr(self.__wrapped, attrname)

l = wrapper([])

(試しに、実行してみます)
>>> l.append(333)
(ここで暴走)

なぜ暴走するのかよく分りません。
__getattribute__はどう使うのが正しいのでしょうか?
21デフォルトの名無しさん:2007/02/18(日) 02:48:11
>>20
self.__getattribute__ の中で self._wrapped を取得しようとすると
さらに self.__getattribute__(self, '_wrapped') を呼び出して無限再帰ループになるみたい。

解決方法は・・・たとえば、_wrapped をインスタンス属性としてもつんじゃなくて
クラス属性にインスタンスをキーにした辞書をもつようにするとかでどう?

class wrapper(object):
    _wrapped = {}
    def __init__(self, obj):
        wrapper._wrapped[hash(self)] = obj
    def __del__(self):
        del wrapper._wrapped[hash(self)]
    def __getattribute__(self, attrname):
        return getattr(wrapper._wrapped[hash(self)], attrname)
22デフォルトの名無しさん:2007/02/18(日) 02:59:35
__getattr__.
23デフォルトの名無しさん:2007/02/18(日) 03:00:57
__getattr__ を __getattribute__ に置き換えるって話じゃないのか
24デフォルトの名無しさん:2007/02/18(日) 03:08:57
if attrname not in ['_wrapped', etc, etc]:
return getattr(self._wrapped, attrname)
else:
super(wrapper, self).__getattribute(attrname)
25デフォルトの名無しさん:2007/02/18(日) 03:14:55
>>21 でおkかと思ったけど、len() ができないなぁ。

>>> l = wrapper([])
>>> len(l)

Traceback (most recent call last):
  File "<pyshell#84>", line 1, in <module>
    len(l)
TypeError: object of type 'wrapper' has no len()

TypeError なあたり、決まった型にしか呼べないのかも。
len(x) って内部で x.__len__ を返してるのかと思ってたけど、ちょっと違うのかな。

>>> l.append(3)
>>> l.__len__()
1
26デフォルトの名無しさん:2007/02/18(日) 03:16:09
あまりにも初歩すぎる質問で申し訳ないのですが、
pythonをC:\Python25のディレクトリにインストールして、
環境変数にパスを通しました。

プロンプトからはpythonは起動し、インタラクティブモードでは普通に動きます。
しかし、保存したpyファイルを、スクリプトモードで実行しようとすると、
ファイルが見つからないとエラーが出てしまい実行できません、

パスを直接指定すれば実行できるのですが、
通常はどこにpyファイルを置けばよろしいのでしょうか?

IDLEでも、同様に実行できなくて(pyファイルをどこに置いてよいかわからず)困っています。

申し訳ありませんが、どなたかお力をお貸し願えませんでしょうか、、?

27デフォルトの名無しさん:2007/02/18(日) 04:03:11
>>25
アクセサでフィールド値を取得してから、len しないとダメじゃない?
__getattribute__ じゃなく、__getattr__ の例で悪いけど、
この場合、同じと思う。

class wrapper(object):
def __init__(self, obj):
self.__wrapped = obj
def __getattr__(self, attrname):
return getattr(self.__wrapped, attrname)
def get_wrapped(self): # フィールド値取得メソッドを設定
return self.__wrapped

l = wrapper([])
l.append(333)

(ここで len を実行。正常に動作する)
>>> len(l.get_wrapped())
1
>>>
28デフォルトの名無しさん:2007/02/18(日) 04:37:24
>>25
__getattribute__ でフックされるのは、dir(l) で出てくるものだけだと思う。
したがって、lenは使えないが__len__は使えるということになる。

>>> dir(l)
['__add__', '__class__', '__contains__', '__delattr__',
'__delitem__', '__delslice__', '__doc__', '__eq__', '__ge__',
'__getattribute__', '__getitem__', '__getslice__', '__gt__',
'__hash__', '__iadd__', '__imul__', '__init__', '__iter__',
'__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__reversed__',
'__rmul__', '__setattr__', '__setitem__', '__setslice__',
'__str__', 'append', 'count', 'extend', 'index', 'insert',
'pop', 'remove', 'reverse', 'sort']
>>>
29デフォルトの名無しさん:2007/02/18(日) 04:45:58
>>26
何が問題なのかイマイチよく分からない。
エラーメッセージをコピペ汁。
30デフォルトの名無しさん:2007/02/18(日) 04:50:46
>>28
なるほど。__len__ が特別だったのか。確かに __init__ とかフックされたら困るよなぁ。
__len__ を定義して、ラップしているオブジェクトの len() を返すようにしたら、ちゃんと動きますた。
質問主じゃないけど勉強になった。この先 __getattribute__ を使うかどうかはともかくとしてw
31デフォルトの名無しさん:2007/02/18(日) 06:36:41
Zope3 で不特定のオブジェクトにセキュリティかける機能があるけどプロキシ部分は C で書いてあったな
ググってみたら
ttp://www.egenix.com/files/python/mxProxy.html
こういうのもあるけどこれも C でプロキシ書いてあるっぽい
32デフォルトの名無しさん:2007/02/18(日) 07:15:54
>>26
カレントディレクトリと環境変数PATHについて調べてみると良いです。
ttp://www.atmarkit.co.jp/fwin2k/operation/command001/command4.html

もし『実践Python』中だとしたら(違ってたら以下スルーで)、
32ページの test.py は C;\> から実行しているので、
C:\>python test.py のようにする場合、test.py は C:\ に置かないと駄目です。
33デフォルトの名無しさん:2007/02/18(日) 11:16:44
 携帯買い換えたいんだけど、Nokia Series 60 以外でpythonの動く携帯ってあるのかな? 日本で使えるやつで。

Python for Mobile Devices
ttp://www.awaretek.com/pymo.html

 とか見ると、Windows Mobile用はあっても、Windows Mobile phone editon 用はないから、htcz や X01HT じゃ使えなそうだし。誰か教えて下さい。
34デフォルトの名無しさん:2007/02/18(日) 12:33:37
>32さん
ありがとうざいます!カレントを移動したらできました、、
環境変数でパスを通していたらそれで大丈夫だと思っていました、、
本当に助かりました!

ご指摘の通り、「実践Python」中ですw
プロンプトからの実行は解決したのですが、
34ページのIDLEからpyファイルを実行するというのがうまくいかない感じです、
(NameError: name 'hi' is not defined と返ってきます、)
pyファイルの置き場所がまずいのでしょうか、、?それとも根本的な間違いがあるのでしょうか、、
IDLE上から、はファイル名ではなく関数名を呼ぶのですよね、、うーん

>29さん
32さんの助言で解決できました、
レスを頂きどうもありがとうございます。
私の勉強不足で完全には解決していない部分もありますので、
もしよろしければお力をお貸し下さい。

みなさま、ありがとうございました。
35デフォルトの名無しさん:2007/02/18(日) 12:43:37
>>19 >>20 で __getattribute__ の使い方について質問した者です。

なぜ、__getattr__ ではなく__getattribute__ を使いたいと思ったかというと、
「スーパークラスの配列で,複数の異なるサブクラスのインスタンスを一元管理する」
というテクニックを使えるようにしておきたいと思ったからです。

  ちなみに、従来からあるメソッド __getattr__() は、解決できない属性名の時だけ呼ばれるが
  __getattribute__() は、属性値の取得が必要になったときに、常に呼ばれる、とのこと。

「スーパークラスの配列で,複数の異なるサブクラスのインスタンスを一元管理する」に
ついては、javaの解説ページですが、下のところにあります。
http://itpro.nikkeibp.co.jp/members/NSW/ITBASIC/20050620/162997/

(略)部長さん,課長さん,担当さんをそれぞれ表すBuchoクラス,Kachoクラス,Tantoクラスを
定義し,それぞれのクラスのメンバーとして給与の金額を返すgetKyuyoという関数があるとします。
複数のクラスに同じ名前の関数があるのですから,それらを汎化して社員を表すShainクラスを定義
しましょう。(略)

サブクラスであるBuchoクラス,Kachoクラス,Tantoクラスは,0を返すgetKyuyoを継承することに
なります。こんな関数を継承しても役に立ちませんね。スーパークラスから継承した関数の機能が
サブクラスに合わない場合は,サブクラスで同名のメソッドを記述すれば上書き変更できます。
これを「オーバーライド(override)」と呼びます。部長さんの給与は70万円,課長さんの給与は
50万円,担当さんの給与は30万円としましょう

(略)汎化を行わなかったら「役職ごとに給与を求めて集計する」という手順になるでしょう。
汎化を行ったことで「社員の給与を一気に集計する」という手順が実現できるのです。(終)

まあ、それに必要かなと思ったんですが、単にshain = [] に shain.append(shainObject)で集めて、
for で 要素に次々と .getKyuyo して、それを加算していくだけでいいような気もします。

本当に __getattribute__ が使えないと困るのかな? 頭冷やして考えないと分からないw
とにかく、いろいろ参考になりました。みなさん、どうもありがとう。
36デフォルトの名無しさん:2007/02/18(日) 13:03:09
>>33
Iron PythonはWMで動くの?ってやり取りをどっかで見かけた。
結論は確か無理って話だったと思う。

docomoのM1000で Python for UIQが動くかも。
M1000ユーザーじゃないから実際のところは知らない。
でも、PyS60がAPIとかドキュメントとか一番充実してると思う。
37デフォルトの名無しさん:2007/02/18(日) 14:06:03
>>35
そのプログラムは単にオブジェクト指向のポリモーフィズム(多様性)を利用しているだけなので
__getattribute__ は必要ありません。そのプログラムを Python で書くなら、こんな感じになります。

class Shain:
    def getKyuyo(self): return 0
class Bucho(Shain):
    def getKyuyo(self): return 700000
class Kacho(Shain):
    def getKyuyo(self): return 500000
class Tanto(Shain):
    def getKyuyo(self): return 300000

s = [ Bucho(), Kacho(), Kacho(), Tanto(), Tanto(), Tanto() ]

goukei = 0
for p in s: goukei += p.getKyuyo()
print goukei


ちなみに、Python では Bucho Kacho Tanto を Shain のサブクラスにしなくても動きます。
これは Java の「変数の型」という概念が Python にはないからです。
Python ではオブジェクトに対してメソッドを呼び出した場合、その名前を持つメソッドが
動的に(実行時に)決定されるので、スーパークラスで抽象化する必要はありません。(ダックタイピング)
(ただし、スーパークラスの振る舞いを引き継ぐ為の継承は有効な手段です)
呼び出されるメソッドが静的に(コンパイル時に)決定される Java や C++ などとの大きな違いですね。
38デフォルトの名無しさん:2007/02/18(日) 14:07:47
>>36

>>Iron PythonはWMで動くの?ってやり取りをどっかで見かけた。
>>結論は確か無理って話だったと思う。

 確かにどっかで見かけた。

>>でも、PyS60がAPIとかドキュメントとか一番充実してると思う。

 そうなのか・・・メインが不調なので、702NKを再登録するか、
htcz or X01HTにするかで考えてたけど、残念です。
3935:2007/02/18(日) 14:26:56
>>37
サンクス。
40デフォルトの名無しさん:2007/02/18(日) 14:48:14
class Strategy1(object):
 def __init__(self):
  pass
 def strategyMethod(self):
  print u"これは戦略1です" # 処理

class Strategy2(object):
 def __init__(self):
  pass
 def strategyMethod(self):
  print u"これは戦略2です" # 同様の事に対する別の処理方法

class acceptStrategy(object):
 def __init__(self):
  self.__strategy = None
 def setStrategy(self, strategyObject):
  self.__strategy = strategyObject # オブジェクトの受け入れ
 def __getattr__(self, attrname):
  return getattr(self.__strategy, attrname)
41デフォルトの名無しさん:2007/02/18(日) 14:49:48
(実行)
>>> s1 = Strategy1()
>>> s2 = Strategy2()
>>>
>>> aStrategy = acceptStrategy()
>>>
>>> aStrategy.setStrategy(s1)
>>> aStrategy.strategyMethod()
これは戦略1です
>>>
>>> aStrategy.setStrategy(s2)
>>> aStrategy.strategyMethod()
これは戦略2です
4240,41:2007/02/18(日) 14:52:38
(よく見たら、冒頭にある一行が抜けていた org
というわけで、冒頭の一行を追加)

見よう見まねで strategy パターンを作ってみたが、こんなんでおk?
43デフォルトの名無しさん:2007/02/18(日) 15:44:24
>>38
IronPythonはCompact Frameworkの制約の関係で動かないけど、ネイティブの
Python Windows CE portなら動くと思う。
http://s-square.sakura.ne.jp/2006/09/14/pythonce-install/
44デフォルトの名無しさん:2007/02/18(日) 16:33:52
auther って・・・・。
45デフォルトの名無しさん:2007/02/18(日) 20:17:17
>>34
『実践Python』 34ページ見てみました。説明端折りすぎで呆れました・・・。

図2-3-1-3のように動作させるには、*エディタウインドウのメニューから*
Run > Run Module としてモジュール(ここでは hi.py )を読み込みます。
すると IDLE のウインドウに
>>> ================================ RESTART ================================
と表示されるので、あとは
>>> hi('Hello')
Hello
のように実行できます。

とりあえず、いきなり IDLE を使うのはお勧めできません。
最初のうちはエディタとコマンドプロンプトを使うようにしたほうがいいと思いますよ。
46デフォルトの名無しさん:2007/02/18(日) 21:46:47
>>43

>>Python Windows CE portなら動くと思う。
>>http://s-square.sakura.ne.jp/2006/09/14/pythonce-install/

 早速見せてもらいました。W-Zero3 と X01HT は OS が違うのでダメ
かと思いこんでたけど、ちょっと調べてみたら、Flash Player なんか
は同じ CAB ファイルが使えるみたいなこと書いてあるね。試してみた
いけど、知人にX01HT/htcz ユーザーがいないんだよね。
47デフォルトの名無しさん:2007/02/19(月) 00:30:34
> 45さん
どうもありがとうございます!
おかげさまでうまく行きました。
これで、学習を進められます(^-^)

私のような初心者の質問に優しく答えて下さって本当にありがとうございます。
失礼致しましたー。
48デフォルトの名無しさん:2007/02/19(月) 01:12:00
>>46
hTcZで普通に動いている。

Phone Editionは、電話機能が追加になっただけで、
PC Editionと基本的には同じ。
49デフォルトの名無しさん:2007/02/19(月) 01:32:23
eclipse Pydev
でpythonのWSHを編集 実行でバックする方法はないのでしょうか?
50デフォルトの名無しさん:2007/02/19(月) 12:26:06
>>48
>>hTcZで普通に動いている。

>>PC Editionと基本的には同じ。

 これを見てマイクロソフトのサイトで確認したら、その通り
だった。早速買いに行きます。48さんありがとう。
51デフォルトの名無しさん:2007/02/19(月) 14:13:52
http://sourceforge.net/project/showfiles.php?group_id=78018
ここにpy2.6なんてあるのだけど
いまのpythonの最新バージョンは2.5だよね?
52デフォルトの名無しさん:2007/02/19(月) 14:57:18
よく考えたら、stateパターンとStrategyパターンは、
視点が違うだけで同じものじゃないか? 以下、stateパターン。

import sys
import exceptions

class _StateTemplate(object): # Abstract なつもり
def _showMessage(self):
raise exceptions.NotImplementedError, '%s' %`self.__class__`

class myState1(_StateTemplate):
def __init__(self):
pass
def _showMessage(self):
print u"こんにちは。" # ある状態(例えば昼)に対応した処理

class myState2(_StateTemplate):
def __init__(self):
pass
def _showMessage(self):
print u"今晩は。" # ある状態(例えば夜)に対応した処理

class acceptState(object):
def __init__(self):
self.__currentState = None
def setState(self, stateObject):
self.__currentState = stateObject # オブジェクトの受け入れ
def __getattr__(self, attrname):
return getattr(self.__currentState, attrname)
53デフォルトの名無しさん:2007/02/19(月) 14:58:42
(実行)
>>> state1 = myState1()
>>> state2 = myState2()
>>>
>>> aState = acceptState()
>>>
>>> aState.setState(state1)
>>> aState._showMessage()
こんにちは。
>>> aState.setState(state2)
>>> aState._showMessage()
今晩は。
54デフォルトの名無しさん:2007/02/19(月) 15:01:49
これはstrategyパターン。stateパターンとは視点こそ違うが
同じものだ、と思う。それでいいのか?(いいと思うが)

import sys
import exceptions

class _strategyTemplate(object): # Abstract なつもり
def _strategyMethod(self):
raise exceptions.NotImplementedError, '%s' %`self.__class__`

class Strategy1(_strategyTemplate):
def __init__(self):
pass
def _strategyMethod(self):
print u"これは戦略1です" # 処理

class Strategy2(_strategyTemplate):
def __init__(self):
pass
def _strategyMethod(self):
print u"これは戦略2です" # 状況が変わったとき、同様の事を実現する別の処理

class acceptStrategy(object):
def __init__(self):
self.__strategy = None
def setStrategy(self, strategyObject):
self.__strategy = strategyObject # オブジェクトの受け入れ
def __getattr__(self, attrname):
return getattr(self.__strategy, attrname)
55デフォルトの名無しさん:2007/02/19(月) 15:03:07
(実行)
>>> s1 = Strategy1()
>>> s2 = Strategy2()
>>>
>>> aStrategy = acceptStrategy()
>>>
>>> aStrategy.setStrategy(s1)
>>> aStrategy._strategyMethod()
これは戦略1です
>>> aStrategy.setStrategy(s2)
>>> aStrategy._strategyMethod()
これは戦略2です
56デフォルトの名無しさん:2007/02/19(月) 15:51:50
>>51
意味はわからんけど、他のモジュールでも見た事ある。
当時は、2.5リリース前なのに、2.5用があった。
試しにインストールしようとしたら、
「Python2.5がインストールされてません」
ってエラーがでて何もできなかった。
57デフォルトの名無しさん:2007/02/19(月) 16:11:45
main trunk の追っかけやってる人用じゃないの?
58デフォルトの名無しさん:2007/02/19(月) 18:05:35
そりゃ、俺たちが2.5を使ってるってことは、どっかで偉い人は2.6を作ってるわけだよ。
59デフォルトの名無しさん:2007/02/19(月) 18:34:13
http://sourceforge.net/mailarchive/forum.php?thread_id=31604567&forum_id=44139
matlabとのインターフェイスをここと同じようにしてインストールしようとして挫折した。
python 2.5
winxp
matlab 7.1
mingw32
でうまくいった人いますか?
60デフォルトの名無しさん:2007/02/19(月) 18:55:50
俺は2.7を使っていますが何か?
61デフォルトの名無しさん:2007/02/19(月) 19:18:44
ツマンネ
62デフォルトの名無しさん:2007/02/19(月) 19:34:28
>>60
2.7ってZopeか?
関係者乙。
63デフォルトの名無しさん:2007/02/19(月) 20:08:58
俺は断然Zope3
64デフォルトの名無しさん:2007/02/19(月) 21:07:06
>>54
> これはstrategyパターン。stateパターンとは視点こそ違うが
> 同じものだ、と思う。それでいいのか?(いいと思うが)

その通り。クラス図上や構造上では同じ。
目的によって呼び方が変わるんです。デザパタはまず目的ありきだから。
65デフォルトの名無しさん:2007/02/19(月) 22:03:10
ま た 燃 料 投 下 か
66デフォルトの名無しさん:2007/02/20(火) 00:48:11
>>49
誰もかまってあげてないので、

「実行でバックする」って何だ?
67デフォルトの名無しさん:2007/02/20(火) 00:59:37
>>66
「pythonのWSHを編集・実行・デバッグ」ってことじゃないのか。
「pythonのWSH」が依然として意味不明だが。
68デフォルトの名無しさん:2007/02/20(火) 02:41:03
pythonのおかげで、単純作業ばかりを命令してくる
ハラスメント上司から開放されました。

パワーポイントに画像100枚きれいに並べて貼れとか
そんなばっかり

しかし、最近、夜中に自動処理させてるはずのパソコンが、
次の朝出勤すると電源が落ちてるようになりました。

1時間おきに、途中結果をsaveするようにできる
簡単な枠組みはないのでしょうか?
69デフォルトの名無しさん:2007/02/20(火) 03:57:59
timeをつかう
70デフォルトの名無しさん:2007/02/20(火) 06:18:45
>>67
wsfにでも書いてるんじゃね?
ActivePythonで出来なかったっけ。
71デフォルトの名無しさん:2007/02/20(火) 06:39:23
同じエンコードのページ(html)でうまくユニコードに変換できるのとできないのがある・・・
まあできないのはルータの設定画面なんだが、なんでだろ
なにがillegal multibyte sequenceだ!
72デフォルトの名無しさん:2007/02/20(火) 09:47:59
73デフォルトの名無しさん:2007/02/20(火) 09:50:38
>>64
だよね。
視点が違うだけだけど、いや、そうじゃなくて、視点の違いこそ大事な
ことなんだと思うようになってきた。
どういうパターンを使うべきか、なんて考えるとき、視点こそが
大事だもんね。

Visitor パターンも構造がよく似てる。ちょっとだけ違うかな。どうだろ。

  ところで、>>52 のstateパターンと >>54 Strategyパターンで、
  冒頭の import sys は不要だった。(消し忘れ)失礼。
74デフォルトの名無しさん:2007/02/20(火) 10:36:56
>>52-55
その例どっちもstrategyだと思う
75デフォルトの名無しさん:2007/02/20(火) 10:58:11
tim.sleep(-1)って無限ループか何か?何が起こってるの?エラーにはならないんだけど。
76デフォルトの名無しさん:2007/02/20(火) 11:02:08
↑のちのデザパタ議論のひきがねであった
77デフォルトの名無しさん:2007/02/20(火) 11:02:42
アチャー(ノ∀`)
78デフォルトの名無しさん:2007/02/20(火) 12:16:08
所詮デザパタ
79デフォルトの名無しさん:2007/02/20(火) 12:25:54
pyってcの構造体に相当するものがないってことでいいのでしょうか?
80デフォルトの名無しさん:2007/02/20(火) 12:54:31
>>79
構造体より多機能なクラスがあるじゃないか!
81デフォルトの名無しさん:2007/02/20(火) 13:03:47
>>75
time.sleep() に -1 を渡すとどうなるかなんてマニュアルには書いてないから、
何が起こっていても不思議じゃないよ。というか渡すべきじゃない。
それでも実際に何が起こっているのか知りたいのなら、
Python ソースコードの timemodule.c を眺めてみるといいかも。
82デフォルトの名無しさん:2007/02/20(火) 13:41:39
Pythonの回りにもイタいヤツが増えたな。
裾野が広がった弊害か。
83デフォルトの名無しさん:2007/02/20(火) 13:49:22
>>74
strategyとstateの本質的違いを挙げてほしい。
いろいろ考えたんだけど、>>52-55 で問題ないのではないか、
と思っている。
(冒頭の消し忘れの import sys はご愛嬌ということで)

それどころか、Visitor パターンもJavaでは違うと思うんだけど、
Pythonで書く限りは構造としては同じにならざるを得ないんじゃないかなぁ。
(ただいま、いろいろ検討中)

あと、DecoratorパターンとProxyパターンも両者は視点以外は同一のもの
じゃないかな。
84デフォルトの名無しさん:2007/02/20(火) 15:43:52
何のためのデザパタだよ。
定義が与えられているんだから、違いだの視点だのを云々する必要は全然ないだろ。
「このコードは○○パターンか?」と聞くのは「この単語は○○という意味か?」と聞くのに等しい。
後者なら「辞書引け」で終わるところだ。RTFM
85デフォルトの名無しさん:2007/02/20(火) 15:55:29
>>84
分かってない人は、出てこなくていいって。

視点が違うというのは、どこに着目すれば、適用できるパターンが
おのずと見えてくるか、という話。
結果のプログラムの構造の話ではなくて、いまこの問題では
なにを問われているのかを見分けるのは容易ではない。

与えられた状況に注目するか、
こちらが用意している対応策に注視するかは、
できたプログラムの構造が同じでも、
違うだろ。

それと、JaveとPythonでは機能が違う。
Javaで書けば違うのは分るが、Pythonではそうはならない
ケースもある。

で、お前は DecoratorパターンとProxyパターン の本質的違いはなんだと思うわけ?
視点以外の違いを挙げてみろ。
86デフォルトの名無しさん:2007/02/20(火) 16:09:19
>>84
辞書を引けとの言葉に従ってWikipediaの英語版でStateパターンを検索したら、
ノートで>>74>>83と同じように状態オブジェクトの中で遷移させるのが
Stateパターンだとかそうじゃないとかくだらない議論が繰り広げられてました><
87デフォルトの名無しさん:2007/02/20(火) 16:10:54
真昼間から長文レスばっかりだな。
Pythonプログラマは火曜日が定休日か?
88デフォルトの名無しさん:2007/02/20(火) 16:20:21
つーか、デコレーターもプロクシも限られた時間でどうしても
実装しないといけない場合のテクニックでしかないでしょ。
練り上げたコードが最終的にデコレータパターンとかありえないし。
だから、そういう下らないものの本質が何だとか考えても無意味。
89デフォルトの名無しさん:2007/02/20(火) 16:29:25
確かに、練り上げたコードはこれといったパターンに収まらないだろうな
90デフォルトの名無しさん:2007/02/20(火) 16:37:25
日本語だったらStateもStrategyもDecoratorもProxyもかわんないんじゃないの
字義的に変でラベル変えただけだから日本人には関係ない話だなこの辺

>どういうパターンを使うべきか
つか、デザパタってコード書く時にそんなに意識するかな
読む時に脳内コードスタック圧縮する以外の使いどころなくないか?
91デフォルトの名無しさん:2007/02/20(火) 16:39:35
>>88
ともいえない。
例えば、ブリッジパターンだって、デコレータの応用とも考えられなくもないし。

ま、抽象論ばかり言ってても仕方ないが。
92デフォルトの名無しさん:2007/02/20(火) 17:00:12
それにしても手術前からステータスだけは上がっていくのか・・・
9392:2007/02/20(火) 17:00:47
誤爆です、、、申し訳ない
94デフォルトの名無しさん:2007/02/20(火) 18:09:25
>>88
>練り上げたコードが最終的にデコレータパターンとかありえないし。
はあ?
java.ioパッケージとかはdecoratorパターンの典型的な例じゃねーか。
Webアプリフレームワークでもフィルタ系はdecoratorパターン使うだろ。
自分がPythonで使ったことがないからといって勝手な結論出すなよ。
95デフォルトの名無しさん:2007/02/20(火) 18:22:16
>>85
>で、お前は DecoratorパターンとProxyパターン の本質的違いはなんだと思うわけ?
>視点以外の違いを挙げてみろ。

どちらも結局はcomposition+delegationなので、目的は違うけど手段は一緒。
本質的に違いはなく、視点が違うだけというのは同意。
ただそれを言い出すとデザインパターンの半分は本質的に同じなので、権威に弱いこの業界では禁句だろう。
いままでさんざんGoFを褒めていた人の立場がなくなる。
96デフォルトの名無しさん:2007/02/20(火) 18:24:00
「【GoF】デザインパターン 6
http://pc10.2ch.net/test/read.cgi/tech/1141846078/
97デフォルトの名無しさん:2007/02/20(火) 18:31:18
>>87
>真昼間から長文レスばっかりだな。
>Pythonプログラマは火曜日が定休日か?

ここのところのデザパタの話はね、
Java使いとか.Net使いみたいな、
典型的なITドカタがやってるんだよ.
98デフォルトの名無しさん:2007/02/20(火) 18:34:51
マニュアル化されてないと安心できない、ゆとり教育世代に愛されるデザパタですよ
99デフォルトの名無しさん:2007/02/20(火) 18:40:54
なんでもマニュアル化はゆとりのちょい上なわけだが
100デフォルトの名無しさん:2007/02/20(火) 18:59:54
ゆとり教育世代でなくても自主的にゆとり教育みたいな人も居るわけだから、
ゆとり教育世代にだって賢い人は居るのだろうね。
101デフォルトの名無しさん:2007/02/20(火) 19:01:31
ゆとり世代はマニュアルがあっても仕事できなくなると噂されてたが
実際どうなったのだろう
102デフォルトの名無しさん:2007/02/20(火) 20:18:23
ゆとりとかマニュアルとか心配する前に、
Pythonスレで全然関係ない話題を続ける、
空気の読めない自分のことを心配した方がいいよ.
103デフォルトの名無しさん:2007/02/20(火) 20:20:33
それは以前から心配してるんだが、どうにもならんのよ。
104デフォルトの名無しさん:2007/02/21(水) 01:51:59
>>102
ここはデザパタスレになったんだよ?
流れを読めない人こそ自分の心配した方がいいと思うけどなぁーーー
105デフォルトの名無しさん:2007/02/21(水) 04:20:02
>>92が一番興味を引かれるレスだな
106デフォルトの名無しさん:2007/02/21(水) 07:45:18
>>104
うぜぇ(wwwwwwwwww
107デフォルトの名無しさん:2007/02/21(水) 18:52:38
import urllib
fo = urllib.urlopen("http://www.yahoo.co.jp/")
#fo = urllib.urlopen("http://localhost/") # これなら動く

AcitvePython2.2と2.3を入れたら本家python2.4で動いてた
urllibを使ったコードがのき並、全て動かなくなりますた。

IOError: [Errno socket error] (10061, 'Connection refused')
だそうです。ググっても わかりません ><
108107:2007/02/21(水) 18:53:28
telnet www.google.com 80 して :『GET / HTTP/1.0 [改行][改行]』したら
http://rogiken.org/wiki/index.php?%BB%AA%B8%EC%B2%F1%CF%C3%C6%FE%CC%E7
ここと同じような出力が帰ってきました。
browserとtelnetではconnectできるけど、urllibではconnectできない状況。
\(^o^)/
109デフォルトの名無しさん:2007/02/21(水) 20:05:38
配列でdata2 = ["abcde","12345","あいうえお"]だった時、
data2に配列が何個あるか取得するにはどうしたらいいですか?
data2の配列の場合、3の値を取得する方法
110デフォルトの名無しさん:2007/02/21(水) 20:29:20
len(data2)
111デフォルトの名無しさん:2007/02/21(水) 20:58:00
>>107
そりゃバージョンダウンすりゃそんなもんだろ
なんでActivePython 2.4.xを使わない?
112デフォルトの名無しさん:2007/02/21(水) 21:02:01
>>79
Cの構造体を読み込みたいなら struct.unpack() ですよ。

いやわかってるって。これが欲しいんじゃないんだろ?
113107:2007/02/21(水) 21:14:00
>>111
使ってみたいと思ったToolが2.2でしか動かないんだ…

環境変数を直して本家2.4のほうにlinkするようにして
2.4でコンパイルしてるんだけど、動かねー。インストーラ
なんて使った記憶ないし…何がまずいんだろう…
114デフォルトの名無しさん:2007/02/21(水) 21:20:01
>>113
コンパイルしようとしてるのは、2.2でしか動かないツールなのか?
urllibを使ったプログラムの方なのか?
115107:2007/02/21(水) 21:49:31
コンパイルしようとしてるのは>107の urllib を使ったプログラムです。

すみません、言葉が足りてませんでした…orz
116デフォルトの名無しさん:2007/02/21(水) 22:07:44
それ,Yahoo!がurllib.urlopenのデフォルトのUserAgentをブロックしてるのかも.
たしか,"Python2.2/urllib"みたいなUAだったと思う.

なので,これを書き換えてやれば上手くいくかも
外してたらすまん

req = urllib.Request("http://www.yahoo.co.jp/")
req.add_header("User-Agent", "(何か適当なUserAgentをあらわす文字列)")
fo = urllib.urlopen(req)

こんな感じでどうよ?
117107:2007/02/21(水) 22:35:46
>>116
ごめん、いま動かしてみたら、>107ので動いたw

http://yanbe.org/python/proxy/
このページのクローラ側のプログラムを組もうと思って
プロキシとかいじってたのがまずかったのかもしれない…orz

再起動してプロクシ鯖のプロセスがきちんと落ちて、urllibが
connectできるようになったと。…もう少しちゃんと調べてから
聞こうよじぶん…orz とりあえず動くようになったしthxです。

クローラ側のプログラムって書くの難しいのかな?
Webrickとか情報が多くて正直うらやますい…
118デフォルトの名無しさん:2007/02/21(水) 22:39:41
( ゚Д゚)y─┛~~
119107:2007/02/21(水) 22:41:01
>再起動して -> OS自体を何回か再起動して
たびたび訂正スマソ。
120107:2007/02/21(水) 22:46:33
>>118
…orz たしかに「あと出しジャンケン」みたいに
なっちゃってるけどさ。そんな呆れちゃ嫌。(なにその傲慢)
121107:2007/02/21(水) 22:48:52
(なにその傲慢) -> (傲慢)
なんか誤解を招きそうな表現になってるし…orz
122デフォルトの名無しさん:2007/02/21(水) 22:51:39
とりあえず風呂にでも入っておちつくんだ
123デフォルトの名無しさん:2007/02/21(水) 22:51:42
いや明らかに煽ってるぞ
124デフォルトの名無しさん:2007/02/21(水) 22:59:48
傲慢は自分に向って言ってるんでしょ?
125107:2007/02/21(水) 23:06:59
別に煽ってなんかねぇーですよ。つーかいま動かしてみたら

import os, urllib
os.environ['http_proxy'] = 'http://localhost:8000'
fo = urllib.urlopen("http://www.yahoo.co.jp/")
data = fo.read(); print data

Serving HTTP on 0.0.0.0 port 8000 ...
localhost - - [21/Feb/2007 22:56:03] "GET http://www.yahoo.co.jp/ HTTP/1.0" 200
とか表示されてちゃんと動いてやがるしwww.

きょう一日のあの苦労は一体何だったんだろう…orz
もうね、あぼがどバナナと。もう寝ゆ
126116:2007/02/21(水) 23:16:01
>>117
うはww実は俺そこの管理人ですw
混乱させてしまったようでスミマセン.予想外のタイミングと場所で取り上げていただいて
内心驚いてます.

いまアップされてるやつの実装は,適当もいいところなので,近いうちに,手元にある
もう少しマシなバージョンに差し替える予定なので,今のところは勘弁してください.

ちゃんとしたPythonのProxy Serverの実装だったら以下のページにあるのを
参考にしたらいいと思います.
http://xhaus.com/alan/python/proxies.html

上のページにある中では,Tiny HTTP Proxy とか,行数も少なめで見通しが良くて
参考にするにはいいんじゃないかと.

(特定のレイアウトのページでなく,汎用の)クローラで参考するんだったら
この辺ですかね. http://takanory.net/takalog/540
127デフォルトの名無しさん:2007/02/21(水) 23:48:49
ソケット使ったチャット作ってるんですけど、acceptの返り値について質問。
サーバとクライアント、両方同じポートにバインドしてます。でもacceptの返り
値のポート番号がbindした番号と違うんです。これは別に問題ないんですか?
128デフォルトの名無しさん:2007/02/21(水) 23:53:10
なんかソケットプログラミングの入門書みたいなの1冊読め。話はそれからだ。
129デフォルトの名無しさん:2007/02/22(木) 00:37:48
俺だったらXML-RPCで適当に作る
130デフォルトの名無しさん:2007/02/22(木) 00:50:40
しつもん

イテレータって、iter(x)で作ったオブジェクトのことだと思うんだけど、
同じオブジェクトから作った複数のイテレータインスタンスがあった場合の
動作ってどこかで規定されてる?

具体的には、オブジェクトxがあったときに

i1=iter(x)
i2=iter(x)

print i1.next()
print i2.next()

とかした時の挙動が、ファイルオブジェクトとストリングのリストで
違ってしまって気持ち悪いのを何とかしたい、ということなんですが。
seek位置を覚えてちゃんとlock.acquire→seek→readline→release
みたいなことすれば揃うのかな(する意味あるかはさておき)。
131デフォルトの名無しさん:2007/02/22(木) 01:17:06
javaのjarに相当するものはありますか?
一つのファイルに全ファイル突込んで、そこからプログラムをstartさせたいのですが。
132デフォルトの名無しさん:2007/02/22(木) 01:25:08
>>131
PythonEggsってのがあるよ。といいつつ、俺は使ったことないから使い方聞かれても困るけど。
133デフォルトの名無しさん:2007/02/22(木) 01:29:57
>132

arigato.
134デフォルトの名無しさん:2007/02/22(木) 05:03:45
>>130
リファレンスに書いてあるけど、ファイルオブジェクトはイテレータ
iter()するとファイルオブジェクト自身が返る
複数のイテレータが必要なら、再度open()する

>>> fo1 = open(r'hoge.txt')
>>> fo2 = open(r'hoge.txt')
>>> it1 = iter(fo1)
>>> it2 = iter(fo1)
>>> print fo1 == it1, fo1 == it2, it1 == it2, fo1 == fo2
True True True False
135デフォルトの名無しさん:2007/02/22(木) 06:03:36
>>130
イテレータとゆーのは一般に __iter__ と next の2つのメソッドを兼ね備えているオブジェクトのことかと。
リスト自身はイテレータではない(__iter__ メソッドはあるが next メソッドがない)。

ストリングのリストの方をファイルオブジェクトの挙動に合わせるなら StringIO モジュールが使える。
136107:2007/02/22(木) 08:50:10
>>126
( ゚д゚)ポカーン。なんか中の人 来てたーw

色々と、参考になるページを紹介して頂けたみたいで
本当にありがとうございます (感謝) 調べてみると
compact な proxy serverの実装とか色々あるんですね。。。
じぶんもちゃんと調査のほう、もう一度してみようと思います。
本当にthxです><
137デフォルトの名無しさん:2007/02/22(木) 19:47:48
pygwtってどうよ。ググっても国内だと三件しかヒットしないんだが…
138デフォルトの名無しさん:2007/02/22(木) 20:27:21
出来てないやん
139107:2007/02/22(木) 21:54:30
>>138
なんとなくswingっぽくて素朴なかんじが俺は好きなんだけど
pythonからjavascriptに変換するのって他にもあるのかな?
140デフォルトの名無しさん:2007/02/22(木) 23:11:02
ふつうにjavascriptを書けば?
javascriptのライブラリとかも高機能なのが次々現れてる現状で、
そういうツールを(すごいゆっくりな速度で)開発してること自体が疑問に思うw
141デフォルトの名無しさん:2007/02/23(金) 17:56:48
.py以外のファイルを実行したり
フォルダ開いたりってどうしたらできるのでしょうか?
142デフォルトの名無しさん:2007/02/23(金) 19:31:27
>>141
import os
os.system(ファイル実行のコマンド)
143デフォルトの名無しさん:2007/02/23(金) 22:26:59
>>142
ありがとうございます!
144デフォルトの名無しさん:2007/02/23(金) 22:31:58
ほッ
145デフォルトの名無しさん:2007/02/24(土) 10:23:10
フォルダを開くってのはちょい違う気がしないでもないが、
気にしないでおくか…
146デフォルトの名無しさん:2007/02/24(土) 15:36:21
Windowsなら

import os
os.system("start フォルダ名")

で開いたりしないのかな。Macだとopen?
147デフォルトの名無しさん:2007/02/25(日) 01:42:59
フォルダ開くだけなら:

import os
os.system("explorer c:\\")
148デフォルトの名無しさん:2007/02/25(日) 10:11:26
ttp://blog.adglobe.net/2007/02/07/picnik-free-online-photo-editing-services/
> The picnik services is a combination of front end with Adobe Flex,
> and the backend is done using Python
149デフォルトの名無しさん:2007/02/25(日) 18:05:34
python による Chain Of Responsibility
http://www.h3.dion.ne.jp/~ytakagi/ChainOfResponsibility.html

(まだ説明もなにもないけど、のんびり説明も書いていくつもり。
 ちなみに、結城浩氏の本の Chain Of Responsibility パターンの
 サンプル・コードを、python で同じように動くようにしたもの)

Javaと同じく継承で作ってみたけれど、やってみるまで僕も気がつかなかったが、
Python の継承はJava より制限が厳しく、サブクラスでJavaのように
拡張できない。
(__init__ を拡張すると、親クラスのメンバーでなくなってしまうようだ)

だから、__init__ のフィールド項目を後で増やすとか出来なくて、
親クラスで最初に全部書いておく必要がある。
(これが出来ないと非常に困る。特にこの Chain Of Responsibility では)

これではあまりにやりにくいため、
継承ではなく、すべて委譲で作り直さないといけないなぁと
思った次第。少し休んで取り組みたい。
150デフォルトの名無しさん:2007/02/25(日) 18:48:10
Charlie仕事少なッ!w
超専門職ってかんじか・・w
151デフォルトの名無しさん:2007/02/25(日) 19:07:39
>>149
>だから、__init__ のフィールド項目を後で増やすとか出来なくて、
>親クラスで最初に全部書いておく必要がある。
Chain Of Responsibilityパターンがなんなのかは知らんが、
そういう場合は def __init__(self, *args, **kw) のようなカタチで引数を
取るのがPythonの定石なんじゃないの?
152デフォルトの名無しさん:2007/02/25(日) 19:23:21
>>> class Super(object):
  def __init__(self, hoge):
    self.hoge = hoge

>>> class Child(Super):
  def __init__(self, hoge, fuga):
    super(Child, self).__init__(hoge)
    self.fuga = fuga

>>> c = Child(123, 456)
>>> c.hoge
123
>>> c.fuga
456
>>> s = Super(789)
>>> s.hoge
789


普通にコンストラクタをオーバーライドすればいいんじゃないの?
153デフォルトの名無しさん:2007/02/25(日) 19:26:35
というか、149のサイトを見る限り、numberにデフォルト値でNoneを設定しとけば、
NoSupport、OddSupportに変な引数を代入する必要はなくなる気がする。
154デフォルトの名無しさん:2007/02/25(日) 19:35:56
def limit( self, number):
155デフォルトの名無しさん:2007/02/25(日) 19:40:22
def limit(self, number ):
  self.__number = number
  return self

というメソッドを用意しといて

diana = LimitSupport('Diana').limit(200)

というようなコンストラクションも可能
156デフォルトの名無しさん:2007/02/25(日) 19:42:35
>>149
ソースコードは pre で囲って欲しいな。
br 要素で改行だの全角スペースでインデントしなくて済むよ。
157デフォルトの名無しさん:2007/02/25(日) 19:45:50
>>151
いや、自分はまだJavaから来たばかりで、たしかに Python よく分ってないかも
しれないけど、そういう話とは違うと思うけどな…。

Javaでは コンストラクタとフィールドの設定が分かれているけど、
Python では __init__ とフィールドの設定がくっついているでしょ。

Java のような感じでやれないと、
親クラスを作る時点でインスタンスのフィールドを、
(これからどんなサブクラスが作られるのかも分らないのに)
将来作るかもしれないサブクラスの分もすべて予測して
設定しておかないといけないような、という話で。
(Javaはあとで拡張できる。Python、無理っぽい。
 __init__ の中でフィールド設定しておかないと、
 setメソッドの前にgetメソッドされると、エラー出てしまうし)

それができないと、将来それが必要になったとき、
あとから親クラスを直さないといけなくなる。

どんな場合でも、目の前の10行前後を直すだけで対応できるように
プログラムする、というのがオブジェクト指向の目標である以上
(そううまくいくもんじゃないけど)、それはやっぱりまずいだろうなと。

どうもサブクラスで __init__ を
オーバーライドしちゃうと、サブクラスがサブクラスでない
ことになって、親クラスのメソッドを使えなくなるみたいなんだよね。

ただ、もう少し検証しないと、断定はできないけど。
158157:2007/02/25(日) 20:06:51
と思ったが、 >>155 を見ると、
やれてるよな… org

もう一度、じっくりコードを検討してみます。
ほかのみんなも、サンクス。

いちおう、(GoF 以外の新パターンも含め)全パターンやるつもりだが、
前途多難だ…。
159デフォルトの名無しさん:2007/02/25(日) 20:33:36
PHPでも使えば?
160デフォルトの名無しさん:2007/02/25(日) 20:51:03
コンストラクタとフィールドの設定が云々の意味が分からない
なんでかんでもJavaの流儀でやろうとするのも分からない
161デフォルトの名無しさん:2007/02/25(日) 21:27:58
>>157
class Derived(Base):
 def __init__(self, *arg, **kwarg):
  Base.__init__(self, *arg, **kwarg)

Pythonはプロトタイプ指向の方が色々と馴染むと思うがね。
先にJavaScriptでもやってみれば?
162デフォルトの名無しさん:2007/02/25(日) 21:29:43
>>160
× Java
○ オブジェクト指向
163デフォルトの名無しさん:2007/02/25(日) 22:13:23
>>160 >>162
オブジェクト指向が目標としてることを簡単にいえば、

1万5000行のコードにかなり大きな手直しを必要とするような場合でも、
何百行も修正するんじゃなくて、目の前の10行かそこいらを
修正するだけで、それが出来るようにしようということです。

有名なのは、1979年頃、MACを開発する前のスティーブ・ジョブズが
パロアルト研究所を訪れた際、Smalltalkの開発者ダン・インガルスの
デモを見て、「エディタのスクロールが行単位じゃなく、滑らかだったら
もっといいんだが」といったところ、インガルスがわずか25秒で直して見せ、
ジョブズを狂喜させたというものです。

どんなものでも、10行かそこいら手を入れるだけで実現する、という
のは現実には難しいですけど、それに一歩でも近づこうということです。

Javaでは当然の流儀になってはいますけど、Pythonもデザインパターンの
すべてのパターンのサンプル・コードがあるようになると、
もっと便利になると思いますよ。

大きな仕事で使ってもらえるチャンスも出てくるかもしれないし。
そんなものはJavaでやれというのは、一つの考え方ではあるでしょうけど、
Pythonの可能性を大きく広げるものになるはずです。
164デフォルトの名無しさん:2007/02/25(日) 22:17:08
そうか
165デフォルトの名無しさん:2007/02/25(日) 22:19:43
かといって、Javaでのデザパタ実装をそのままPythonに移植するのは違うと思うな
166デフォルトの名無しさん:2007/02/25(日) 22:26:12
例えば Python に interface や抽象メソッドは不要なワケだし。
静的言語と動的言語じゃ話が違うんだよね。
全く不要なパターンやもっと簡単に実装できるものが出てくる。
167デフォルトの名無しさん:2007/02/25(日) 22:33:09
Pythonで書いてC++に落とせばいいじゃん
168デフォルトの名無しさん:2007/02/25(日) 23:03:11
>>149
オナニーをここでするんじゃねーよぼけ
デザパタのスレいけって何回言われたらわかんだよ
しね
169デフォルトの名無しさん:2007/02/25(日) 23:12:53
別にデザパタをPythonで実装する話自体はスレ違いではないと思うけど。
Javaとかの静的言語との好対照になるし、色々な設計方法を試してみるのは悪くない。
ただ、ちょっとパターンにとらわれすぎているかなって感じはするが。
170デフォルトの名無しさん:2007/02/25(日) 23:18:46
罵倒パターン

def response(comment):
 if len(comment.splitlines()) > 5:
  print "しね"
171デフォルトの名無しさん:2007/02/25(日) 23:19:50
zope.interfaceなめんな
172デフォルトの名無しさん:2007/02/25(日) 23:33:04
クラス志向&静的型付けかダックタイピングかどうかってこったわな。
C++だとテンプレートを使うとダックタイピング風のことも出来るのが
面白いんだが。
173デフォルトの名無しさん:2007/02/25(日) 23:49:47
PHPでもおぶじぇくとしこうできるよ.
174デフォルトの名無しさん:2007/02/25(日) 23:53:48
おぶじぇくとしこうさえできればなにでもよいというわけではありませんよ
175デフォルトの名無しさん:2007/02/26(月) 00:06:50
>163

なんかオブジェクト指向に感動した瞳キラキラな書き込みがこちらには
ちょっとまぶしいのですが、Pythonはもっとお下劣な言語ではないかと思います。

それに、どの程度コードを書換える必要が出てくるかは設計の上手下手の話であって、
オブジェクト指向の話ではない。現に、俺がオブジェクト指向風味に書いたコレは
アレをソレするのにあっちこっち書換えなきゃいけなくてorz
176デフォルトの名無しさん:2007/02/26(月) 00:11:24
だいぶ前のだけど

ttp://www.python.org/workshops/1997-10/proceedings/savikko.html

あと、ココ掘ればだいたいありそうな気もする

ttp://aspn.activestate.com/ASPN/Python/Cookbook/
177デフォルトの名無しさん:2007/02/26(月) 00:21:59
>>175
>どの程度コードを書換える必要が出てくるかは設計の上手下手の話であって、
>オブジェクト指向の話ではない。

ううん、違う。それこそがオブジェクト指向だと思う。
python による Chain Of Responsibility にちょっとだけ説明加えた。
http://www.h3.dion.ne.jp/~ytakagi/ChainOfResponsibility.html

コード、まだまだ問題かかえたままだけど、ちょっとだけ加えた説明で
なにか分ってきませんか?
僕はJavaをかじっていたので、どうしてもPythonでのパターンのコードが
ほしいのです。仕方ないので、自分で書くことにしました。

これが分らないと、アレをソレするのにあっちこっち書換えなきゃいけなくなるんです。

Javaでもそれは同じです。Rubyでも同じはずなんです。
デザパタ知らないと、オブジェクト指向できないんです。
Pythonにも必要なんです、どうしても。

ちょっとぐらい加えた説明じゃ、分らないかもしれないけど。
178デフォルトの名無しさん:2007/02/26(月) 00:26:02
住人総出で叩かれる前にデザパタスレ逝け
179デフォルトの名無しさん:2007/02/26(月) 00:30:51
もう別スレ立てたら?
180デフォルトの名無しさん:2007/02/26(月) 00:42:07
>>163
>オブジェクト指向が目標としてることを簡単にいえば、
>1万5000行のコードにかなり大きな手直しを必要とするような場合でも、
>何百行も修正するんじゃなくて、目の前の10行かそこいらを
>修正するだけで、それが出来るようにしようということです。
これって、Javaのwrite once, run anywhere主義の極端な例では?
そんなものとオブジェクト指向を結び付けられたら、pythonはオブジェクト指向じゃ
ありませんって言う話になる。
pythonでは「100行直して全体の可読性が上がるんだったら直したほうが正解」
って言うのが一般的な見方だと思う・・
181デフォルトの名無しさん:2007/02/26(月) 00:47:06
VBでもおぶじぇくとしこうできるよ.
182デフォルトの名無しさん:2007/02/26(月) 00:54:42
Simple is better than complex.
183デフォルトの名無しさん:2007/02/26(月) 00:58:36
>>180
>Javaのwrite once, run anywhere主義の極端な例では?

それは、クロスプラットフォームを目指そうという話でしょ?
なにも関係ないです。

>pythonはオブジェクト指向じゃありませんって言う話になる。

どうして? だって、Javaと比べても必要な機能は全部あるよ。
(抽象クラスやインターフェースも、やる気ならやる方法はあるし)
機能は全部あるんだから、誰か作ろうと思えば、当然にできるはず。
ただ、誰もやってくれないので、仕方ないので自分でやろうかなと。

去年の暮れぐらいに、初めてインストールして、本格的に勉強し始めた
のは今年に入ってからなんだけど、まだまだよく分からないところが
あるけれど、なかなか分りやすい言語だなと感心してる。

あと、僕はもともとJava使いだけど、Javaに比べてどうこうと
いいたいのではなく、Pythonもっと便利にしようよ、という話を
してるつもりです。どうせ自分で書くし(時間はかかるだろうけど)。
184デフォルトの名無しさん:2007/02/26(月) 01:02:23

def test( n ):
  if 0:
185デフォルトの名無しさん:2007/02/26(月) 01:04:36
>>183
君がやることに興味を持っている人は少ないので、いちいち報告してくださらなくて
結構です。つーか、報告するな。うざい。
186デフォルトの名無しさん:2007/02/26(月) 01:14:32
>>177
今のところ
下のコードと同じ動作しかしてない。
これより優れてる点を教えてくれ。

def test( n ):
  if 0:
    print "Alice"
  elif n < 100:
    print "Bob"
  elif n == 429:
    print "Charlie"
  elif n < 200:
    print "Diana"
  elif (n % 2) == 1:
    print "Elmo"
  elif n < 300:
    print "Fred"

for i in range(0,500,33):
  test(i)
187デフォルトの名無しさん:2007/02/26(月) 01:19:58
>>163
Smalltalk(というか暫定ダイナブック環境)のこの逸話のミソは、作業の速さや
手を入れた行数の少なさ(ちなみに10行というのはSmalltalkの平均的な
メソッドのコード量を指しているので「たった1メソッドを修正…」と読むべきだし、史実もそう)よりは

 “システムを止めたり再起動することなしに”

この変更を行なえたことにあるので Python が立脚する「オブジェクト指向」(ユーザー定義型の
オブジェクト指向)とはあんまり関係ない話だったりする。
188デフォルトの名無しさん:2007/02/26(月) 01:21:02
>>183
あ、なんかWORAの話は違ったけど、・
とにかくpythonでは>>163のたとえ話のような
より少ないコード変更で新しい機能を取り付けられる
ということは必ずしも美徳とされていない。特に
そのせいで全体の一貫性が失われるようなコード追加は悪い
コーディングの例と考えられるのが一般的傾向。
189デフォルトの名無しさん:2007/02/26(月) 01:21:25
>>183
Pythonに特化したデザパタ(あるのか知らんが)でもないかぎり、
デザパタ一般の話をここでするのはスレ違いも甚だしいことだとまだ気付かないのか
190デフォルトの名無しさん:2007/02/26(月) 01:21:56
>>186
・Chain Of Responsibilityパターンの内容
要求がやってくる。それを処理できるなら処理する。
処理できないなら、その要求を「次の人」にたらい回しする。
次の人がそれを処理できるなら処理する。
処理できないなら、その要求を「さらに次の人」にたらい回しする。
そして、さらに次の人へ……

・このパターンを使うメリット

このパターンのポイントは、最初の人に要求をポンと出してしまうと、
あとは連鎖の中をその要求が流れていき、適切な処理者によって要求が
処理されること。
このパターンを使わないと、要求を出す人が処理者たちの役割分担の詳細
まで知らなければならない。すると、部品としての独立性が損なわれてしまう。

要求を処理する ConcreteHandler(具体的処理者)のオブジェクトの関係が
動的に変化するような状況も考えられる。このパターンのようにたらい回しを
行っていれば、状況の変化に応じて ConcreteHandler(具体的処理者)を
組み替えることができる。
もしこのパターンを使わず、この要求ならこの処理者という対応関係が固定的に
書かれていたら、プログラムが動いている最中に処理者を変更することは難しい。

このパターンを使うと、個々の ConcreteHandler(具体的処理者)の処理は
その固有の内容に絞り込める。このパターンを使わないとすると、状況に
応じてどこに仕事を振り分けるかなどまで、個々の ConcreteHandler(具体的処理者)
に作りこまないといけない。
http://www.h3.dion.ne.jp/~ytakagi/ChainOfResponsibility.html
191デフォルトの名無しさん:2007/02/26(月) 01:33:20
Pythonのお勉強じゃなくね?
議論スレでも立てて思う存分やってくれ
192デフォルトの名無しさん:2007/02/26(月) 01:35:45
>>190
まず、ひとつの完全なチェインを作るためには必ず、
>alice.setNext(bob).setNext(charlie).setNext(diana).setNext(elmo).setNext(fred)
というような全員の名前が一回ずつ出てくる列を書かなければ、
列が破綻してしまう。しかし、このような列を"書く"ということは、
結局のところ、この順番のif elifを書いてるのと同等である。(したがってメリットが無い)
もし、途中でdianaとelmoの順番だけ変えるみたいなことができたら
たしかに、意味があるが、それがさっと出来るほどの巧妙さは無い。
193デフォルトの名無しさん:2007/02/26(月) 01:43:41
>>192
チェインを作る人と、チェインに投げる人は違う。
さらに言うと、スレも違う。
194デフォルトの名無しさん:2007/02/26(月) 01:47:00
>>192
列を作るのに、条件式を知っておく必要がないことも、>>186との違い
195デフォルトの名無しさん:2007/02/26(月) 01:50:31
>>193
いや、だから、チェインを作る人の労力がif elifを使う場合とCORを使うばあいで
なんら変わりが無い思うんだけど・・・?
で、使う人に対しては、aliceに対して投げてくださいと言うか、>>186のtest関数
に投げてくださいと言うかの違いしかない。これも大した差ではない。

>>194
条件式はもちろん
if alice.solvable(n):
  alice.solve(n)
elif bob.solvable(n):
  bob.solve(n)
式に書き換えれば、条件式を知る必要はないし、aliceたちの状態によって
動的に変化可能。
196デフォルトの名無しさん:2007/02/26(月) 01:56:41
あと、たとえばsolveメソッドの返り値を解けたら必要な文字列、解けなかったら0とかにしておけば
def solve( n ): return alice.solve(n) and bob.solve(n) and ...
とやれば、書く量も十分少なくてすむ。
197デフォルトの名無しさん:2007/02/26(月) 01:58:20
>>195
だいぶ近づいてるね。
あとは、処理する人が、動的に(もしくはあちこちで)リストに参加したり退会したり
できるようにしたら・・・はい、Chain of Responsibility.

リストが静的に決まっていたら、if - elif - ... を関数にしてもパターンと同じ事が
できるんだけど、あえてパターンから外れる必要もないからパターンに従う。
198デフォルトの名無しさん:2007/02/26(月) 02:06:09
>>192
うーん、それは違うんじゃない?

このパターンは、AbstractHandler(抽象的処理者)クラス
とConcreteHandler(具体的処理者)クラスの構造をどうするか、
というところがその肝心の内容と思うよ。

君がいっているのは、
要求を最初の具体的処理者に投げる部分だけだよね?
(対話的シェル部分。オリジナルのJavaコードだとメインクラスの
 メイン・メソッドの部分かな)
そうじゃなくて、抽象的処理者クラスと具体的処理者クラスの構造が
肝心かなめの部分。

一般論になるけど、オブジェクト指向も、深いこと考えずにやると
柔軟な変更ができなくなるから、変更部分をどうやって局所にとどめるか、
がカギだよね。

変更部分が、あっちにある、こっちにもあるというのじゃ、
オブジェクト指向なんかする意味ないから。モジュール構成の方が、最初の
設計の負担が少ないだけまだマシとなってしまう。
結局、抽象化をどうやってするかの方法論となると思う。

僕は、デザパタの趣旨の話をするのは全然かまわないんだけど、
スレ違いと怒る人がいるので、やめた方がいいんじゃないかな。

自分としては、Pythonでのコードがほしいから(Javaでのコードはとっくの昔に
全パターンあるんだから)、Javaやc++しか知らない連中に話しても仕方ないでの
ここでやってるんだが、なかなか難しい。

とはいえ、Python自身はとても気にいったので、自分はまだ力量不足かも
しれないけど、なんとかPythonによるデザパタ・コードは書いていきたい。
199デフォルトの名無しさん:2007/02/26(月) 02:13:16
鬱陶しいスレになっちゃったなぁ
200デフォルトの名無しさん:2007/02/26(月) 02:14:39
>>198
>とはいえ、Python自身はとても気にいったので、自分はまだ力量不足かも
>しれないけど、なんとかPythonによるデザパタ・コードは書いていきたい。

PHPでもデザパタは出来るよ。
201デフォルトの名無しさん:2007/02/26(月) 02:15:00
行数多いレスは読まなきゃ平気
202デフォルトの名無しさん:2007/02/26(月) 02:16:44
>>198
お願いだから自分のブログか何かでやってくれないか?
203デフォルトの名無しさん:2007/02/26(月) 02:22:20
抜けるためのメソッド
def exit( self ):
  self.__previous.setNext(self.__next)
入れ替わるためのメソッド
def swap( self, target ):
  target.__previous.setNext(self)
  self.setNext(target.__next)
  target.setNext(self.__next)
  self.__previous.setNext(target)

この辺があれば確かに使えるかもね。そのパターン。
__nextとsetNextしかないとif elifと同じだけど・・・
204デフォルトの名無しさん:2007/02/26(月) 02:26:26
いい加減やめたら?
雰囲気読めよ

Pythonでデザパタ。とかスレ作ったら?
そしたら俺もそっち行く
205デフォルトの名無しさん:2007/02/26(月) 02:31:38
>>197
しかし、やっぱり[alice,bob,...]
みたいな人の配列を作って、
順番変更は配列操作、
実行時は
def solve( n ):
  for p in people:
    if p.solve(n):
      return p.message
とかにしたほうが簡単な気がする。
__next だの __previousだのテクニカルすぎてやる意味が見出せない。
206デフォルトの名無しさん:2007/02/26(月) 02:33:22
>>204の直後に>>205って
おまえどういう神経してんの
207デフォルトの名無しさん:2007/02/26(月) 02:41:11
空気が読めない人はPerlを使うと幸せになれると思うよ。
208デフォルトの名無しさん:2007/02/26(月) 02:46:11
一応205はアンチデザパタのつもりで書いたんだけど・・・(・ω・)
205にJavaの人が答えてくれなかったら>>177のパターン絶対使わないし・・・
209206:2007/02/26(月) 02:51:29
>>208
そうだったのか。
ごめんなさい。まぢですまん
210デフォルトの名無しさん:2007/02/26(月) 03:01:19
>>208
いや、だから、
君は抽象的処理者と具体的処理者の部分を全然変更してないだろ。

そして、そうなっているということは、
たくさんのクラスを無修正で済ませることができているということ。
変更を局所化できているということ。

君はすべてを、抽象的処理者と具体的処理者を全然使わない方法で実装できる。

そのとき、どこに変更部分があるかは気まぐれで、
あっちこっちと直さないといけなくなるだろう。
オブジェクト指向を使う意味が全然ない、オブジェクト指向のコードに
することもできる。モジュール構成より疲れるだけの。

天才ダン・インガルスが変更したのは、たしかにメソッド一つだったかもしれない。
でも、それはメソッド一つですむように設計しておいたからだ。

君の変更は、メインクラスのメイン・メソッドの内容にとどまる。
メインクラスには、他のメソッドもいろいろもてるだろう。
アナザー・メソッドを定めておいて、それを実行すれば、
元のコードの変更はゼロで、コードの追加ですべてできるかも
しれない。

以上、デザパタ論議は終わり。自分は当面、参加しない。
211デフォルトの名無しさん:2007/02/26(月) 03:05:29
>>どの程度コードを書換える必要が出てくるかは設計の上手下手の話であって、
>>オブジェクト指向の話ではない。

>ううん、違う。それこそがオブジェクト指向だと思う。

悪いんだけど、他所いってやってくれない? あんた根本的に何か勘違いしてるよ。
212デフォルトの名無しさん:2007/02/26(月) 03:11:11
宗教って怖いね
213デフォルトの名無しさん:2007/02/26(月) 03:22:22
怖いね。
214デフォルトの名無しさん:2007/02/26(月) 03:29:31
怖いね.
215デフォルトの名無しさん:2007/02/26(月) 03:47:08
後は放置で
216デフォルトの名無しさん:2007/02/26(月) 04:49:56
誰かが立てたっぽいな。

デザパタ + python
http://pc10.2ch.net/test/read.cgi/tech/1172431242/
217デフォルトの名無しさん:2007/02/26(月) 04:52:12
遠いお国で幸せになってる人間を、どうこう言うほど卑しくないつもりだw
218デフォルトの名無しさん:2007/02/26(月) 04:56:43
デザパタってのは数式の公式みたいなもんだなあと改めてオモタ。
勉強しているときは何の役に立つのかピンと来ない。
確かに便利そうではあるが自分のこととして実感できない。
そして、実際に役に立つことが分かるようになった頃には
自分にとってごく当たり前の、普段使いの道具になっている。
勉強していたとき、なぜこの便利さが実感できなかったのかと不思議に思う。
できることなら当時の自分に教えてやりたい。
でも、その説明を聞いても当時の自分にはやっぱりピンと来ないんだろうなあ。
219デフォルトの名無しさん:2007/02/26(月) 05:05:24
220デフォルトの名無しさん:2007/02/26(月) 05:07:49
>>219
すまん、パピコしてから気付いた。あと「数式の公式」ぢゃなくて「数学の公式」だった。
221デフォルトの名無しさん:2007/02/26(月) 09:07:09
前のフォームのある画面からPOSTでアクセスされ、どんな変数名が渡ってくるか固定ではない場合、
その変数名と値を収集するにはどうしたらいいのでしょうか?
222デフォルトの名無しさん:2007/02/26(月) 11:46:01
>>221
デザパタとオブジェクト指向を勉強すれば分かるよ
223デフォルトの名無しさん:2007/02/26(月) 12:05:42
・・・などと、とんちんかんな回答をもらわないように、
使っているライブラリ、実行環境、できれば問題を再現する小さなコードなど、
問題を特定するのに必要な情報を書きましょう。
224デフォルトの名無しさん:2007/02/26(月) 12:14:55
>>221
質問の仕方が悪い.

〜するには何パターンを使えばいいのですか?

これが、このスレでの正しい質問のしかた.
225デフォルトの名無しさん:2007/02/26(月) 12:32:53
>>221
import cgi
FormData = cgi.FieldStorage()

print "Content-Type: text/text\n"
for KEY in FormData.keys():
 print "(%s, %s)" % (KEY, str(FormData.getlist(KEY)))
226デフォルトの名無しさん:2007/02/26(月) 12:41:30
http://video.google.com/videoplay?docid=1189446823303316785
Python 3.0 final: June 2008
Python 2.6 final: April 2008
227デフォルトの名無しさん:2007/02/26(月) 12:46:26
>>225
適当に書いたけど正しくは「text/plain」だった
228221:2007/02/26(月) 13:09:15
>>222-227
ご返答ありがとうございます。
情報不足で申し訳ありませんでした。
>>225さんのソースを元に作成してみます。
229221:2007/02/26(月) 15:08:56
>>225のサンプルを元に作成してみました。
実行した結果、何も表示されませんでした。
原因はresult.pyの「for KEY in FormData.keys():」のループが1度も入りません。
→FormDataの値を確認したら「FieldStorage(None, None, [])」で値が取得出来なかった模様。
期待値としてtest.htmlのtext1に「123」test2に「abc」を入れ
result.pyの画面で「test1/123(改行)test2/abc」がブラウザで表示されることです。
改善策を教えて下さい。よろしくお願いします。

--- test.html(form部分のみ/nameのtest1とtext2が可変の名前になる所) ---
<form action="result.py" method="post">
<input type="text" name="text1">
<input type="text" name="text2">
<input type="submit" value="実行">
</form>

--- result.py ---
import cgi
from mod_python import apache
from string import *
def handler(req):
 FormData = cgi.FieldStorage()
 req.write("Content-Type: text/html\n\n")
 req.write("Content-Type: text/plain\n")
 req.write("<html><head><title>test</title></head><body>")
 for KEY in FormData.keys():
  data_column = str(KEY) + "/"
  data_value = str(FormData.getlist(KEY)) + "<BR>"
  req.write(req, data_column)
  req.write(req, data_value)
 req.write("</body></html>")
230221と229:2007/02/26(月) 15:13:41
req.write("</body></html>")
の次の行に
return apache.OK
が入ります。
231デフォルトの名無しさん:2007/02/26(月) 15:24:30
>>229
普通のcgiじゃなくて、mod-python か。
そっちは良くわからん。

とりあえず、Content-Typeは1回だけしか書けないはずなので、
req.write("Content-Type: text/plain\n")
の行は削除してみてくれ
232229:2007/02/26(月) 15:38:26
>>231
mod-pythonの方です。
Content-Typeの所は指定の通り、消してみましたが変化ないようです。

FormData = cgi.FieldStorage()

この時点でFormDataに何も値が持ってこられない時点で、
エラーにはならないとはいえmod-pythonでは使えないのかな?
233デフォルトの名無しさん:2007/02/26(月) 16:04:04
>>232
マニュアルさっと見た限り、
from mod_python import util
form_data= util.FieldStorage(req)
とかでいけそうな気がします。

あと、ヘッダについては req.write() するのではなく
req.content_type = "text/plain"
のようにするみたいです。
234デフォルトの名無しさん:2007/02/26(月) 16:10:31
cgiモジュールは普通のCGIで使うやつだから、mod-pythonの場合は根本的に違うんじゃないかな。
ちょっと調べたら、

Content-Typeの設定は
req.content_type = "text/plain"
で設定する。

ttp://www.python.jp/doc/contrib/modpython/pyapi-mprequest-meth.html
を読むと、クライアントからのデータは readメソッドで読めるようだ。
POSTの生データは、KEY1=VALUE1&KEY2=VALUE2&・・・だから
あとは自力でなんとかしてみれ。
235232:2007/02/26(月) 16:44:37
>>233-234
返答ありがとうございます。

>>233さんのutilをインポートする件は、表示出来ず、
>>234さんのContent-Typeでreadメソッドでも表示出来ませんでした。
何か手段が無いかと別のメソッドを調査してみた所、
readではなくreadlineのメソッドでフォームの値が収集出来ました。
「text1=123&text2=abc」って感じに。
あとはこの文字列を砕いて表示出来るように頑張ります。
記念に同じ疑問で今後引っかかった方用にソース残しておきます。

--- result.py ---
from mod_python import apache
from string import *
def handler(req):
req.content_type = "text/plain"
aaaaa = req.readline()
req.write("<html><head><title>test</title></head><body>")
req.write(aaaaa)
req.write("</body></html>")
return apache.OK

みなさん、ご協力ありがとうございます。
236デフォルトの名無しさん:2007/02/26(月) 16:44:41
つーか、text/htmlとtext/plainを同時に指定しちゃだめだろw
あと、>>229の書き方だと、空行の入る位置がおかしいから
2個目のContent-typeはドキュメント内に表示されるぞ、

>>234
それやるとデコードを自分でやる羽目になるので、素人にはお勧めできないw
237デフォルトの名無しさん:2007/02/26(月) 16:46:40
こんな感じか

from mod_python import apache, util

def handler(req):
 req.content_type = "text/plain"
 form_data= util.FieldStorage(req)
 for field in form_data.list:
  req.write(field.name+"/"+field.value+"\n")
 return apache.OK
238デフォルトの名無しさん:2007/02/26(月) 16:52:03
>>226
ヒゲ!ヒゲ!
239235:2007/02/26(月) 17:00:34
>>236-237
ご返答ありがとうございます

>>237さんの便利ですね。
1項目ずつ分かれていますから。
自分のより、こちらをベースにしたいです。

本当にありがとうございます。
240デフォルトの名無しさん:2007/02/26(月) 17:16:02
やっぱりprint 関数は見た目はあんまりうれしくない感じだ・・・
print('x\n', 'y')とかちょっとperlっぽい感じがする、・・・、
まあp=printとか[print(x) for x in arry]
とかいろいろ悪さが出来るのは面白いだろうけど、・・・
241デフォルトの名無しさん:2007/02/26(月) 17:39:10
>>226
ず〜と 水みたいなのを握り締めてるのが気になってしょうがない
242デフォルトの名無しさん:2007/02/26(月) 17:49:29
new style class がraise出来なかったのは結局解決したってことなんだろうか・・・
短くてよく分からんかった・・・
243デフォルトの名無しさん:2007/02/26(月) 17:58:45
a = { f(x) for x in S if P(x) }

↑これやばいwかっこよすぎ
244デフォルトの名無しさん:2007/02/26(月) 21:02:36
nonlocal 萎え
245デフォルトの名無しさん:2007/02/26(月) 22:15:25
  _  ∩
( ゚∀゚)彡 おっぱい!おっぱい!
 ⊂彡
246デフォルトの名無しさん:2007/02/26(月) 22:24:03
perlでいうCPANみたいなものってpythonではどこになるんすか?
247デフォルトの名無しさん:2007/02/26(月) 22:30:25
>>246
ぱいぱい
248デフォルトの名無しさん:2007/02/26(月) 22:31:00
249デフォルトの名無しさん:2007/02/26(月) 22:52:49
>>247-248
ありがとん。
250デフォルトの名無しさん:2007/02/27(火) 03:10:10
チーズショップが正式名称になったんじゃないの?
まあ、urlに残ってるけど・・・
251デフォルトの名無しさん:2007/02/27(火) 15:05:15
最新Pythonエクスプローラ 〜Django,TurboGears,Twisted,IronPython 完全攻略
ttp://gihyo.jp/book/2007/978-4-7741-3042-2
252デフォルトの名無しさん:2007/02/27(火) 15:13:12
お、よさげだね

SDの python 関連記事のまとめかな?
253デフォルトの名無しさん:2007/02/27(火) 17:59:44
それにしても TurboGears ってpython2.5がでて半年たつのにいまだに
2.5に対応できないでいる。寄せ集めツールズの弱点がでた感じ。
254デフォルトの名無しさん:2007/02/27(火) 20:48:06
一番遅いのに合わせてるってこと? どいつだろう。
255デフォルトの名無しさん:2007/02/27(火) 20:51:58
2.5に未対応でもほぼ無問題.
functoolsとか使いたがるヤツはたいてい使い物にならない機能オタ.
256デフォルトの名無しさん:2007/02/27(火) 21:05:18
>>> [   'A']
['A']

こっちみんなよw

>>> ['A'   ]
['A']

こっちみんな!w
257デフォルトの名無しさん:2007/02/27(火) 21:08:13
>>256
和んだw
258デフォルトの名無しさん:2007/02/27(火) 21:38:27
吹いた
259デフォルトの名無しさん:2007/02/27(火) 21:43:49
>>256
その発想はなかったわwwwww
260デフォルトの名無しさん:2007/02/28(水) 01:12:51
>>256
Python >>> Ruby が決定したなw

irb(main):001:0> [   'A']
=> ["A"]
irb(main):002:0> ['A'   ]
=> ["A"]
261デフォルトの名無しさん:2007/02/28(水) 02:00:28
>>260
あなたのおかげで、やっと>>256の意味がわかった。
ありがとう、面白いねこれ。
262デフォルトの名無しさん:2007/02/28(水) 07:48:17
>>>> ('_')
>'_'
>>>> ('_')
>'_'
>>>> ('_',)
>('_',)
263デフォルトの名無しさん:2007/02/28(水) 09:49:37
Python Jobs - Average Salary for Python Skills
ttp://www.itjobswatch.co.uk/jobs/uk/python.do
> Average Salary £43,149

  (,,゚Д゚) 43149ポンドっていくらだ・・・・

Σ(,,゚Д゚) 1000万超?!

  (,,゚Д゚) ポカーン
264デフォルトの名無しさん:2007/02/28(水) 09:50:58
なのになんで俺無職なん?
265デフォルトの名無しさん:2007/02/28(水) 09:53:48
Over1000マソのサラリーに求められる
仕事の質や量を考えられないようなヤツが無職なのは当然
266デフォルトの名無しさん:2007/02/28(水) 10:20:58
決め打ちの煽りワロス

無職仲間ハケーン
267デフォルトの名無しさん:2007/02/28(水) 10:35:53
>>264,266
Python使えてIQ140以上で英語ができて
IT系の特定分野でとんがった技術持ってて
自分で課題設定できて絶え間なく成果を出せるようなスキルがあれば
Googleに入れるぞ!

そしたらストックオプションで人生の半分くらい引きこもっても生きてられるぞ!!

おまえらガンガレ!!
268デフォルトの名無しさん:2007/02/28(水) 11:44:10
>自分で課題設定できて絶え間なく成果を出せる

....................o.....rz
269デフォルトの名無しさん:2007/02/28(水) 13:08:57
有能を語っているうちに興奮して態度がでかくなる無能って
どうしようもなくミジメだよな。
270デフォルトの名無しさん:2007/02/28(水) 14:04:14
そんなやつならわざわざGoogleに入るまでもない。
271デフォルトの名無しさん:2007/02/28(水) 20:22:43
>>> [  'A'] < "なあ、俺って結構イケてる?"
True
>>> [  'A'] < "え、マジで?"
True
>>> [  'A'] < "・・・・・"
True
>>> [  'A'] < "あー"
True
>>> [  'A'] < "俺、逝ってよし?"
True
>>> [  'A']
['A']

だから、こっちみんなw
272デフォルトの名無しさん:2007/02/28(水) 20:47:23
ぱいそんかわいいよぱいそん
273デフォルトの名無しさん:2007/02/28(水) 20:50:36
たぷるたん、ってのもいました
274デフォルトの名無しさん:2007/02/28(水) 23:01:01
>>269
そうやって君の一日がまた一つ終わったわけだ。
275デフォルトの名無しさん:2007/03/01(木) 00:45:09
>>271
ハゲワロスw
276デフォルトの名無しさん:2007/03/01(木) 01:05:05
>>271
くだらないけどワロタww
277デフォルトの名無しさん:2007/03/01(木) 02:58:43
最近RubyからPythonに移ってきました。
比較しながら勉強しているのですが、リストのflattenに
あたるメソッドはないのでしょうか?

たとえば、[[1,2,3],[4,5,6],[7,8,9]]

[1,2,3,4,5,6,7,8,9]
に変換するようなものです。
よろしくお願いします。
278デフォルトの名無しさん:2007/03/01(木) 03:00:11
ちなみに、
Rubyのflattenだと、もっと深いリストでも
A = [[1,2,[3],[4,[5,6],[7,8],[9]]
B = A.flatten()
と書くと、[1,2,3,4,5,6,7,8,9]になります。
279デフォルトの名無しさん:2007/03/01(木) 04:03:51
>>277-278
ないと思われ
280デフォルトの名無しさん:2007/03/01(木) 04:09:56
早めに置いておきますね

Python厨とRuby厨が仲直りするスレッド
http://pc11.2ch.net/test/read.cgi/tech/1099804004/
281デフォルトの名無しさん:2007/03/01(木) 04:16:10
欲しいと思ったことはないが、ないなら実装すれば良いと思われ。

import types

def flatten(a):
    ret = []
    for x in a:
        if type(x) == types.ListType:
            ret.extend(flatten(x))
        else:
            ret.append(x)
    return ret

print flatten([[1,2,[3],[4,[5,6],[7,8],[9]]]])
282デフォルトの名無しさん:2007/03/01(木) 04:34:16
>>279
>>281
ありがとうございます。
A.flatten().collect().join()とかよく書くので
知りたかっただけのことです。

>>280
ケンカなんかしませんよw
283デフォルトの名無しさん:2007/03/01(木) 08:10:39
>>281
types.ListType なんて初めて知った。。。
これってどのバージョンでも使えるの?
284デフォルトの名無しさん:2007/03/01(木) 09:45:40
>>281
ListTypeはオッサンの書き方。
ヤングマンはisinstance()を使うべし。

http://www.python.jp/doc/2.4/lib/module-types.html
285デフォルトの名無しさん:2007/03/01(木) 11:07:18
type(x) == list でもいい
286デフォルトの名無しさん:2007/03/01(木) 11:24:46
>>285
http://www.python.jp/doc/2.4/lib/built-in-funcs.html

>オブジェクトの型のテストには、組み込み関数 isinstance() が推奨されています。

Perlでもやれば?(wwwwwwwwwwwwww
287デフォルトの名無しさん:2007/03/01(木) 14:08:21
Ruby厨ってまぢしつこいね。
288デフォルトの名無しさん:2007/03/01(木) 14:10:18
ジェネレータ使うならこんな感じか。

def iter_deep_array(a):
    for x in a:
        if isinstance(x, list):
            for y in iter_deep_array(x):
                yield y
        else:
            yield x

def flatten(a):
    return list(iter_deep_array(a))

print flatten([[1,2,[3],[4,[5,6],[7,8],[9]]]])
289デフォルトの名無しさん:2007/03/01(木) 15:57:15
こういうの見ると引数型のパターンマッチがほしくなってくる・・・
290デフォルトの名無しさん:2007/03/01(木) 23:04:08
lst = [1,2,3]
lst.append(lst)

print flatten(lst)
291デフォルトの名無しさん:2007/03/01(木) 23:17:34
>>289
ん?どういうこと?
292デフォルトの名無しさん:2007/03/02(金) 00:34:48
>>291
Haskellみたいなの、ってことじゃね?
293デフォルトの名無しさん:2007/03/02(金) 01:48:44
[Python-ml-jp 3915] Guido氏サイン入り「みんなのPython」プレゼントのお知らせ
294デフォルトの名無しさん:2007/03/02(金) 01:51:23
日本語でかかれたファイル(文字コード不明)があって、
その中の文字数をカウントしたいのですが、
どうすればいいですか?

echo あ >text

data = open( "./text" ).read();
print len( data );

で、4と表示されてしまいます、、、
295デフォルトの名無しさん:2007/03/02(金) 01:52:28
296デフォルトの名無しさん:2007/03/02(金) 01:56:23
>>295
1行目の「〜にふられちゃいました」で一瞬ドキリとした。
297デフォルトの名無しさん:2007/03/02(金) 01:59:33
>>294
1文字じゃ文字コードの判定できない。
エスパーで答えると、
print len(data.decode('utf-8'))
298デフォルトの名無しさん:2007/03/02(金) 02:56:23
       。oO( import string っと・・・ )
  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
  \/    ./
     ̄ ̄ ̄

  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
  \/    ./
     ̄ ̄ ̄
299デフォルトの名無しさん:2007/03/02(金) 03:29:53
>>297
めっちゃありがとうございますx100
出来ました。エスパー凄杉

あと、1文字じゃ判定できないんですか
ちょっと勉強してみます
300デフォルトの名無しさん:2007/03/02(金) 05:25:15
>>293
なんだか芸能人みたいなことをさせられてるGuidoワロス
301デフォルトの名無しさん:2007/03/02(金) 05:45:11
俺は初めてのPythonと、みんなのPython買ったが
選択は間違いじゃないかな?
302デフォルトの名無しさん:2007/03/02(金) 07:51:35
このスレの住人はほとんど本興味なし
303デフォルトの名無しさん:2007/03/02(金) 08:51:22
アルヨ アルヨ
304デフォルトの名無しさん:2007/03/02(金) 10:00:34
>>299

それは例えば、

a

と一文字だけ書いてあって、これが英文の一部か独文の一部か
仏文の一部か判定しろ、ってのと同じだと思われ。
305デフォルトの名無しさん:2007/03/02(金) 11:31:55
自分のサイン入りをプレゼントするのならそうとうキモいな
306デフォルトの名無しさん:2007/03/02(金) 11:44:38
>>295
ご本人は志賀高原か
俺らとは人種が違うようだ(w
307デフォルトの名無しさん:2007/03/02(金) 14:22:31
やりたいことやるだけなら、ぶっちゃけ本とか要らなくね?
308デフォルトの名無しさん:2007/03/02(金) 16:41:40
>>307
検索するのもおっくうなときに、
パラパラめくれるリファ本があると、便利じゃない?
309デフォルトの名無しさん:2007/03/02(金) 16:45:20
>>308
本めくるよりは検索のが絶対速い

本のよさは、どこでも読めることと、大量の文章をさほど疲れずに読めることだろう
310デフォルトの名無しさん:2007/03/02(金) 16:48:46
本に書いてあることがすべてネットに存在するわけじゃ無かろう
ネットで十分な人は本買わなきゃいいだけだよ
311デフォルトの名無しさん:2007/03/02(金) 17:01:33
>>309
> 本めくるよりは検索のが絶対速い

いや〜、そうじゃない事も多いよ。
検索しても、欲しかった情報がばっちり書いてあるのか、単語が書いてあるだけなのか、
実際見ないとわからないこともあるしね。
312デフォルトの名無しさん:2007/03/02(金) 17:59:05
帰りの電車の中で読むなら本だな。
313デフォルトの名無しさん:2007/03/02(金) 18:12:49
初めて扱う分野の基本を勉強するなら本をじっくり読む方がいい。
ファミレスでランチ食いながら読んだりするよ。
314デフォルトの名無しさん:2007/03/02(金) 18:47:10
おまいらpythonをどんな場面に活用してる?
ファイル整理スクリプトとか?それとも何かアプリ作ったりとか?
315デフォルトの名無しさん:2007/03/02(金) 19:16:24
ネイティブでなくてもいい場面なら何でも。
316デフォルトの名無しさん:2007/03/02(金) 20:24:32
ネット系の実験とかが多いな
317デフォルトの名無しさん:2007/03/02(金) 20:25:55
>>314
高級電卓
318デフォルトの名無しさん:2007/03/02(金) 20:52:43
あー、そういえばこないだ、数板で覆面算きいてる奴がいて、
pythonでさっと検索関数書いて答えたりした・・w
319デフォルトの名無しさん:2007/03/03(土) 02:20:56
Pythonだけで2chブラウザ作るのは、まあ無謀だよな
320デフォルトの名無しさん:2007/03/03(土) 03:11:52
昔作ってる人いたな
モナークとキティーウォークだったかな
321デフォルトの名無しさん:2007/03/03(土) 04:19:20
エンジン部が遅くなる気がする以上に、GUI作るので発狂しそうだw
VBのがまだ向いてるな。C系より遅いったって、Pyよりは速いの出来そうだし。
322デフォルトの名無しさん:2007/03/03(土) 04:59:36
そこでpsycoですよ
323デフォルトの名無しさん:2007/03/03(土) 07:59:14
流れよまずに
lambdaは廃止になるんだっけ?
324デフォルトの名無しさん:2007/03/03(土) 08:27:23
scipyをintel macにインストールできた人いたらやり方おしえてくださいっす。
コンパイルはできたんですが、テストプログラム動かすとエラーになってしまう。。
325デフォルトの名無しさん:2007/03/03(土) 12:48:38
>>323
ならない。拡張(複数行とか)もされない。
326デフォルトの名無しさん:2007/03/03(土) 12:50:43
>>324
ちなみにどんなエラーが出るの?
327デフォルトの名無しさん:2007/03/03(土) 14:00:44
>>295
本屋に行ったら下に書いてある「TurboGears×Python」ってやつがすでに平積みされてた
早売りにもほどがある
328デフォルトの名無しさん:2007/03/03(土) 14:22:53
質問です。

ログファイルを監視するアプリ(unix の tail -f みたいなもの)をpythonで作りたいと思っています(wxPythonでGUIにするつもりです)。
pythonでファイルを監視して変更があったことを検知する手段はあるのでしょうか?

今のところ思いついた方法としては
・一定間隔でタイマーイベントを発行
・ファイルの更新時間を調べて前回の更新時間と比較
・更新されていたら表示
とすればいけると思うのですが、イマイチしっくりこないので…

環境は
WinXP SP2
Python2.4
です。
329デフォルトの名無しさん:2007/03/03(土) 14:54:32
ない
Windows の API を使うこと
330デフォルトの名無しさん:2007/03/03(土) 15:49:31
ねんちゃくねんちゃくぅ!
331デフォルトの名無しさん:2007/03/03(土) 19:49:34
>>323
関数型言語としてのアイデンティティがwww
332デフォルトの名無しさん:2007/03/03(土) 21:35:23
関数型言語じゃないのでへっちゃらです
333デフォルトの名無しさん:2007/03/03(土) 22:12:50
334デフォルトの名無しさん:2007/03/03(土) 22:44:01
↑これって並列化云々の技術と組み合わせられるのかなぁ・・・?
335lambda:2007/03/03(土) 22:48:07
サンキュー
key 付きの sort, min, max 使ってるソース書いてから
lambda 廃止?書き直しかよーと狼狽してた。
336デフォルトの名無しさん:2007/03/03(土) 23:04:58
>>328
スレッド使えばできるんじゃね?下のコードだとなんか時々終わる時に
エラー出るけど、スレッド詳しい人ならちゃんと書けるはず。

import thread
import time
import os

def change():
    open("a.txt", "w").write("a")

def watch():
    t1 = None
    while 1:
        t2 = os.path.getmtime("a.txt")
        if t1 is not None and t1 != t2:
            print "changed"
        t1 = t2
        time.sleep(1)

change()
thread.start_new_thread(watch, ())

for _ in xrange(5):
    change()
    time.sleep(2)
337デフォルトの名無しさん:2007/03/04(日) 00:01:23
HTMLParserの使い方が全く理解できねえ・・・・
ググって見つかるサンプルも、呪文にしか見えない・・・・orz
やさしいサンプルとか、そのあたりを解説した書籍とか、HPとか・・・・なんでもいいからなんか教えて!!
338328:2007/03/04(日) 00:35:57
>>329
FindFirstChangeNotificationやFindNextChangeNotificationあたりがそれっぽいですね。
pywin32モジュールから使えそうなので調べてみようと思います。

>>336
そういう方法もあるんですね。
スレッド周りは勉強不足なのでこれを期に勉強してみようと思います。


ありがとうございました。
339デフォルトの名無しさん:2007/03/04(日) 00:44:14
>>337
H2タグで囲まれた部分を取り出してリストにするサンプル

#!/usr/local/bin/python
# coding=shift_jis

import HTMLParser

class MyHTMLParser(HTMLParser.HTMLParser):
#俺カスタムなHTMLParserクラスを作る
H2List = []
TagID = '' #H2タグの場合のフラグの準備

def handle_starttag(self, tag, attrs): #何か開始タグに来た場合の処理
if tag == 'h2': #ページのソースに関係なく小文字!!
self.TagID = 'h2' #H2タグに来たときにフラグをたてる
elif tag == 'hoge':
self.TagID = 'hoge' #他のタグに来たときにフラグをたてる

def handle_endtag(self, tag): #何か終了タグに来た場合の処理
if tag == 'h2': #ここも小文字!!
self.TagID = '' #H2タグを抜けるときにフラグをはずす
elif tag == 'hoge':
self.TagID = ''

def handle_data(self, data): #開始・終了タグに囲まれた中身の処理
if self.TagID == 'h2':
self.H2List.append(data) #フラグがある場合に内容をリストに追加
340デフォルトの名無しさん:2007/03/04(日) 00:45:45
(つづき。インデントは行頭に戻す)
URL = 'http://www.python.org/'

import urllib2
Website = urllib2.urlopen(URL)
HTML = Website.read()
Website.close()

MyParser = MyHTMLParser()
MyParser.feed(HTML)
MyList = MyParser.H2List
MyParser.close()

print MyList
341デフォルトの名無しさん:2007/03/04(日) 00:51:04
>>339-340
ありがとう!!!
コメントがめちゃくちゃ有り難い。
342339,340:2007/03/04(日) 00:55:32
>>341
俺も最初わからんかったから気持ちはよくわかる。
普段はオブジェクト指向プログラミングとかしないから、
クラスのメソッドをオーバーライトする、とかの意味がわからんかった。
343デフォルトの名無しさん:2007/03/04(日) 01:35:17
>>337
PerlのHTML::Parserと違ってタグのオリジナルテキストをそのまま取得できないので
その点は注意だな。

たとえば、一部要素に関してだけ何らかの変換をして
他はそのまま通すような変換フィルタをこれで書こうとすると、

・コピーするためには、あらゆる要素のハンドラを書かざるを得ない。
 handle_charref()やhandle_entityref()なども忘れずに。
・タグはタグ名とアトリビュートに分解された形でしか取得できないので、
 自分で組み立てなおして出力するしかない。
344デフォルトの名無しさん:2007/03/04(日) 01:49:37
>>337

的外れかもしれませんけど、BeautifulSoupがおすすめです。
http://www.crummy.com/software/BeautifulSoup/

from BeautifulSoup import BeautifulSoup

test_html="""
<html>
<body>
<h2>hogehoge</h2>
<h2>hogehoge</h2>
</body>
</html>
"""

soup = BeautifulSoup(test_html)
for h2 in soup.findAll('h2'):
print h2.string

結果
hogehoge
hogehoge
345デフォルトの名無しさん:2007/03/04(日) 02:48:33
>>281>>288
reduceを使ったらもうちょっとかわいく書けた。

def cup(n): return flatten(n) if isinstance(n, list) else [n]
def spoo(n, m): return cup(n) + cup(m)
def flatten(L): return [] if not L else cup(L[0]) if len(L) == 1 else reduce(spoo, L)

flatten([[1,2,[3],[[[[[[[]]]]]]],[4,[5,6],[7,8],[9]]]])
#=> [1,2,3,4,5,6,7,8,9]
346デフォルトの名無しさん:2007/03/04(日) 04:03:55
[]がすげえな、目が痛い。自殺志向のPythonに思えるw
347デフォルトの名無しさん:2007/03/04(日) 09:39:45
>>345
よくこんなコード思いつくなwww
これはすごい
理解するのに3分ぐらいかかったぜwww
348デフォルトの名無しさん:2007/03/04(日) 22:47:15
>345 は言語マニヤ? ← 尊敬
349デフォルトの名無しさん:2007/03/05(月) 00:34:22
サニタイジングが簡単に出来るモジュール化何かないでしょうか?
350デフォルトの名無しさん:2007/03/05(月) 02:24:10
想像するに>>345はLISPERだな。
351デフォルトの名無しさん:2007/03/05(月) 13:28:43
>>349
>>> import cgi
>>> cgi.escape('<>&"')
'<>&"'
>>> cgi.escape('<>&"', True)
'<>&"'

それはそうと、Pythonで変数が定義されているかどうかを調べるよい方法はありますか。
locals().has_key('foo') or globals().has_key('foo')
というのがダサくて仕方ありません。
352デフォルトの名無しさん:2007/03/05(月) 13:39:09
そもそも変数が定義されているかどうか調べなきゃいけなないという状況がダサいの
だから我慢してください
353デフォルトの名無しさん:2007/03/05(月) 13:53:45
try: except:
354デフォルトの名無しさん:2007/03/05(月) 15:45:49
>>352
そういう状況、ふつうにあるけどな。メタプログラミングがからんできたら。
知らないなら知らないといえばいいのに、なにをわざわざ言い訳してるんだろ。

>>353
さんくす。そんな方法もあったか。
でもちょっと微妙
355デフォルトの名無しさん:2007/03/05(月) 15:53:43
>>351
某ブラウザだとアンカーがないと何やってるか分からんw
356デフォルトの名無しさん:2007/03/05(月) 15:56:01
>>351
普通に'foo' in locals()は?
357デフォルトの名無しさん:2007/03/05(月) 16:16:07
>>354
メタプログラミングを使うとコードの変数参照スコープ?が動的に変わるの?
358デフォルトの名無しさん:2007/03/05(月) 16:17:22
>>354
メタプログラミングが必要になる状況がそもそもダサいとは思わんかね?
359デフォルトの名無しさん:2007/03/05(月) 16:31:03
オレはダサくないって事だけは鉄板なんだよきっと.
360デフォルトの名無しさん:2007/03/05(月) 16:37:59
なにがダサイダサクナイって話はスレ違いじゃまいか?
361デフォルトの名無しさん:2007/03/05(月) 16:50:55
351はPython使いとしてダサいと思います。
362デフォルトの名無しさん:2007/03/05(月) 21:07:33
なんでassertしないんだ
363デフォルトの名無しさん:2007/03/05(月) 23:14:48
PythonコードからPythonコードをインタプリタっぽく使う方法ってありませんかね?

parserライブラリのASTを有効活用すれば楽できるかと思うけど、どうやって良いか思いつかない。
今はしょうがなくスレッド化して、同期処理やってます。
364デフォルトの名無しさん:2007/03/05(月) 23:39:56
eval(open(file).read())
365363:2007/03/05(月) 23:50:51
>>364
それを使うと、fileのソースを一気に実行してしまうんですけど
そのfileのソースコードと本体のソースコードを同期させたいんです。

例えば、file内のソースに TextOut(r'あいうえお',50,'MSPゴシック')、とあったら
本体GUIに50msec間隔で'あいうえお'がMSPゴシックで表示される感じです。
もちろん、本体GUIも同時に動いています。

そして、今そのTextOutみたいな特殊な関数をスレッド関連で同期取っているんですけど
あまりの開発効率の悪さに、心が折れそうになってるんですよ。
366デフォルトの名無しさん:2007/03/06(火) 00:03:58
code = open(file).read()

使いたいスコープ:
  eval(code)
367デフォルトの名無しさん:2007/03/06(火) 00:06:47
> 50msec間隔で'あいうえお'がMSPゴシックで表示される感じです

「あ」「い」・・・って一文字表示される間隔なのか、
全体の文字列がチカチカ50msec間隔で表示・非表示を繰り返すのか、意味分からん。
どっちにしても、そういうのを同期っていうのか?
368デフォルトの名無しさん:2007/03/06(火) 00:10:50
やりたいことがよくわからんが、スレッドでやるほうが百万倍簡単じゃね?
369363:2007/03/06(火) 00:11:20
>>366
なんとなくそうなるんではないかと、予想はあったのですけど・・・。
ちょっとやってみます。

>>367
一文字ずつ表示される間隔です。
5文字だから250msecぐらいだとして、その250msecで表示が完了するまで
インタプリタ側の処理は先に進んで欲しくないわけです。
そこで、本体ソースはインタプリタ側のスレッドを一時停止して同期を取っていた訳です。
370363:2007/03/06(火) 00:14:28
>>368
まあ、スレッド使ってやっているわけですけど。


まあ、ぶっちゃけると、プレゼンアプリっぽいのを作っているわけです。
当然アニメーション処理や、文字の時差表示などを組み込んでいるわけですけど。

今までxmlか何かでインポートしていたのを、ふと、「Pythonコードそのもの使ってできなくね?」
と思った次第で。
371デフォルトの名無しさん:2007/03/06(火) 00:17:00
GUIでつくるんなら、GUI側にタイマーイベント処理とか作ればいいんじゃね?
372363:2007/03/06(火) 00:19:24
>>371
ごめ、GUI側にタイマ処理は既にやっているぽ。

その間、インタプリタ側の処理を止めるのに、わざわざセッションを一々張っているので
何とか改善できないかなぁ、と思ってるんです。
373363:2007/03/06(火) 00:24:25
貴重なスレを消化してすんません。
もうちょっと、先が見えてからまたきます。
374デフォルトの名無しさん:2007/03/06(火) 00:30:29
>>370
なるほど、コルーチン的に動かしたいわけだね。
別インタプリタを起動するよりは、そのPythonソース中ではトップレベルではなく、何か
main的な関数を呼ぶ規則にしておくのが良いんじゃないかな。
あとは別スレッドでそこを呼び出す。さらにプレゼン用の便利同期プリミティブセット一式
を作って抽象化しておく。
375デフォルトの名無しさん:2007/03/06(火) 00:38:21
普通に埋め込みコードをCで書けば?
376363:2007/03/06(火) 00:43:53
>>374
な・・・なるほど。多分半分ぐらいは理解してないけど。
便利同期プリミティブセット一式、てのは必須ですね。

行き当たりばったりでPythonコード組めなかったのは初めてだ・・・。

>>375
PLY使ってLunaっぽくCもどきスクリプトを作り始めたのが最初なのは秘密だ。
微妙な完成度と、異常な遅さと不安定さで(全部自責)、このまま開発を継続
するのを断念したのも秘密だ。
377デフォルトの名無しさん:2007/03/06(火) 01:38:44
378デフォルトの名無しさん:2007/03/06(火) 11:27:40
Pythonで、オブジェクトの中身を再帰的にたどって表示してくれるようなライブラリはありますか。
Rubyのinspect()メソッドみたいなやつです。
379デフォルトの名無しさん:2007/03/06(火) 11:30:29
別にRubyと比較している訳じゃないので、「だったらRuby使え」とかいう人間としてレベルが低い反応はご遠慮ください。
380デフォルトの名無しさん:2007/03/06(火) 11:36:10
>378 と >379 の間にナニかレスあったの?
381デフォルトの名無しさん:2007/03/06(火) 11:49:44
>>379
>人間としてレベルが低い反応

質問者としてレベルが低いですね.
オマエみたいなヤツはRuby使え.
382デフォルトの名無しさん:2007/03/06(火) 13:31:36
>>363
目的は違うけど以前似たよーなことを考えて書いたコードがあったので
参考までに貼っとく。

[ext_runner.py]--------------------------------------------------------
from bdb import Bdb
import Tkinter, threading
trigger = threading.Event()
running = True
class Debugger(Bdb):
    def user_line(self, frame):
        trigger.wait()
        if not running:
            self.set_quit()
db = Debugger()
class DebuggerThread(threading.Thread):
    def run(self):
        db.run("import ext")
ui = Tkinter.Tk()
button = Tkinter.Button(ui, text="Run")
button.pack(fill="x")
def toggle():
    if trigger.isSet():
        button.config(text="Run")
        trigger.clear()
    else:
        button.config(text="Stop")
        trigger.set()
button.config(command=toggle)
383382の続き:2007/03/06(火) 13:32:44
th = DebuggerThread()
def quit():
    global running; running = False
    print "terminating the external script..."
    trigger.set()
    th.join()
    print "done"
    ui.quit()
Tkinter.Button(ui, text="Quit", command=quit).pack(fill="x")
th.start()
ui.mainloop()
ui.destroy()

[ext.py]---------------------------------------------------------------
import time
c = 0
while True:
    c += 1
    print "count", c
    time.sleep(1)
384デフォルトの名無しさん:2007/03/06(火) 14:09:49
>>378>>376は別人だろ
釣られるなよ
385デフォルトの名無しさん:2007/03/06(火) 14:10:23
>>378>>379
386デフォルトの名無しさん:2007/03/06(火) 14:31:08
今さら自己フォローですか。
そんなことより、すぐ興奮する癖と被害妄想とどうにかするほうが先だと思います。
387デフォルトの名無しさん:2007/03/06(火) 14:34:45
おまえもな
388デフォルトの名無しさん:2007/03/06(火) 14:42:03
>378

単純な質問だが、オブジェクトの「中身」って何だ?
389デフォルトの名無しさん:2007/03/06(火) 14:45:09
Rubyのinspect()メソッドみたいなやつって書いただろ
390デフォルトの名無しさん:2007/03/06(火) 15:03:36
Ruby使いが人間として劣っていることがよく分かる展開だな(wwww
391デフォルトの名無しさん:2007/03/06(火) 15:05:06
頭の悪さをねちっこさでカバーして
偉そうにするから連中は始末に負えない。
392デフォルトの名無しさん:2007/03/06(火) 15:06:43
おいおい、まつもとくんのことをそんな風に言うのはやめろよな!!
393デフォルトの名無しさん:2007/03/06(火) 15:13:07
俺は>378じゃないが、Pythonで言うなら

class MyClass:
  def __init__(self):
    self.var1 = 'foo'
    self.var2 = 3

obj = MyClass()
print obj.inspect()

ってやったら

<MyClass: var1='foo' var2=3>

って感じで表示されるのが Ruby の inspect だな
再帰的っつーか、ルートクラスで定義されてる上に
inspect 内でフィールドに inspect 呼んでるから結果的に全て遡るだけ

ちなみに、リテラル形式のあるクラスでは inspect はリテラル自体を返す

>>378
リテラルに対しては repr() を使えばお望みの物が出るハズ
自作クラスなら、それらしいメソッド名で
中身の各オブジェクトに対して repr() 呼ぶぐらいしか俺は思いつかないが
394デフォルトの名無しさん:2007/03/06(火) 15:16:58
リテラルに対しては、じゃないや
リテラルの形式で書けるクラスのインスタンスに対しては、が正確か
395デフォルトの名無しさん:2007/03/06(火) 15:17:18
>>393
>自作クラスなら、それらしいメソッド名で

http://www.python.jp/doc/2.3.5/ref/customization.html

入門書くらい読もうな。
396デフォルトの名無しさん:2007/03/06(火) 15:26:30
>395
__repr__() は知ってたけれど、何か違う気がしてやめた。
やっぱ、__repr__() が一番適切?
でも持ってる変数の中身まで見たり、
> 可能な場合には、この値は
> 同じ値を持ったオブジェクトを
> (適切な環境で) 再生成するために使えるような
> 有効な Python 式に 似せるべきです。
って辺りが気になってそうは言わなかったんだけど。
397デフォルトの名無しさん:2007/03/06(火) 15:32:38
>396

自作クラスみたいに簡潔にリテラル表記できないオブジェクトについては
___repr__が再生成できなくてもいいんじゃね?

標準ライブラリのクラスもそうなってるし。

>>> import poplib
>>> s = poplib.POP3('hoge.hage.uge')
>>> s
<poplib.POP3 instance at 0x791fd0>
398378:2007/03/06(火) 15:35:07
回答してくれた方、ありがとうございました。
pprintというのを見つけたんですが、repr()と同じで中身までは見てくれないようです。
なさそうなんで、頑張って自作してみます。
399デフォルトの名無しさん:2007/03/06(火) 15:36:15
すまん,
397の例は単にクラスインスタンスの標準的なreprを使ってるだけだから
あまり参考にならないかも

setsのSetクラスなんかは、ちゃんと再生成できる表記を返すみたいだ

>>> import sets
>>> sets.Set([1,2,3])
Set([1, 2, 3])

結局のところ,mustじゃなくてshouldって言ってるんだから
厳密に従う必要はないと思うよ
400デフォルトの名無しさん:2007/03/06(火) 19:51:00
つーかこの場合質問者が欲しいのはオブジェクトの内容のダンプでそ
__repr__() を厳密に実装するか否かの問題じゃないと思われ
401107:2007/03/06(火) 19:56:26
http://subtech.g.hatena.ne.jp/secondlife/?word=UkagakaIO

こんなの見付けたんだけどこれpythonに書き直すの
大変かな? perlみたいな雑多なitem(Nodokaとか)が探せばころがってる
rubyがすこし羨しい…orz
402デフォルトの名無しさん:2007/03/06(火) 20:09:54
pythonスレはそういう関係に興味ある人少ないと思われ
だから君がやるんだ
403デフォルトの名無しさん:2007/03/06(火) 20:16:32
「何か」ってまだやってたのか。
あれってHTTPに似たプロトコルだから既存の物を改造すればできるじゃね。
socket使ったほうが早いか。
404363:2007/03/06(火) 20:33:45
ちょっと遅くなったけど、yield使えばコルーチンが「糞」簡単にできました。
Pythonとコルーチンでググったら出てきました・・・。
いままでジェネレータとしか見ていなかったけど、yield構文は強力過ぎですね・・・。

参考にしたサイト
ttp://www-06.ibm.com/jp/developerworks/linux/020920/j_l-pygen.html
405デフォルトの名無しさん:2007/03/06(火) 21:32:58
伺かか・・・・・何もかも皆懐かしい・・・・・。
406デフォルトの名無しさん:2007/03/06(火) 21:55:14
ただのdumpならpickleでもしとけば(違
407107:2007/03/06(火) 22:14:07
>>402-403
答えてくれてありがd。

ttp://d.hatena.ne.jp/omochist/20061121/1164121012
ここみてたら socket で簡単にできそうでした。
微妙にスレ違いっぽいのでsage。
408デフォルトの名無しさん:2007/03/06(火) 23:24:13
>>401
人それぞれだねえ
俺はpythonにデフォでメール関係のライブラリ
があって完成度の高さに感動したよ。
簡単にマルチパートのメールが作れるし
rubyなんて外部のrmailですら中途半端なのに
409デフォルトの名無しさん:2007/03/06(火) 23:33:37
>>401
ninixとかはガイシュツ?
410デフォルトの名無しさん:2007/03/06(火) 23:45:14
ninixはPythonで書かれてるんだっけ?
昔使ってたわ
411デフォルトの名無しさん:2007/03/07(水) 03:28:20
すいません、大学でPythonを勉強している者です。"&"と”>>”の意味がいまいちわからないんですけど、どなたか教えてもらえないでしょうか?
例えば、if x & (1<<i):
li.append("○")

よろしくお願いします。
412デフォルトの名無しさん:2007/03/07(水) 03:34:58
同じ大学生といってもこれはないわ
413デフォルトの名無しさん:2007/03/07(水) 03:35:21
せんせに聞こうぜ
414デフォルトの名無しさん:2007/03/07(水) 03:37:25
>>412
すいません、プログラミングにおいて全くの初心者なんで。自分で勉強しています。どなたかできればよろしくお願いします。
415デフォルトの名無しさん:2007/03/07(水) 03:44:45
2進法って知ってる?
416デフォルトの名無しさん:2007/03/07(水) 03:47:32
はい。。。
417デフォルトの名無しさん:2007/03/07(水) 03:50:31
ちなみに、ここで聞いちゃうと自分で勉強したことにならないよ。
でも二進法を知ってる君なら大丈夫、自分でなんとかできるよ。
418デフォルトの名無しさん:2007/03/07(水) 03:54:44
>>417
どうもありがとうございます^^ でも長い間考えたんですけど全くわからなくて。。。もう少し自分で考えて見ます。”&”と”>>”って一体何をするのやら^^;
419デフォルトの名無しさん:2007/03/07(水) 03:56:28
420デフォルトの名無しさん:2007/03/07(水) 04:18:05
>>419
リンクどうもありがとうございます。やっと理解できました!
421デフォルトの名無しさん:2007/03/07(水) 11:41:14
python ML で ぱいそん と名乗るのはどうなのよ
422デフォルトの名無しさん:2007/03/07(水) 11:45:10
頭の程度がよくわかるから
応対の仕方を決めやすくていいんじゃない?
423デフォルトの名無しさん:2007/03/07(水) 22:10:29
ぱいそんのためのメーリングリストだからいいんじゃね?
424デフォルトの名無しさん:2007/03/07(水) 22:59:24
最新Pythonエクスプローラ買ったけど、誤植(サンプルリストの図番号とか)が多くて困惑
425デフォルトの名無しさん:2007/03/07(水) 23:05:36
>>424
リスト9がなかったときはさすがにどうよと思ったね
426デフォルトの名無しさん:2007/03/07(水) 23:20:15
クラス定義にdefを使う、とか?
427デフォルトの名無しさん:2007/03/08(木) 00:14:41
質問です
import random

random.seed()
a = [[0]*4]*4
for i in range(4):
 for j in range(4):
  a[i][j] = random.randint(0,1)
print a
このようなのを実行すると
[[1, 0, 1, 0], [1, 0, 1, 0], [1, 0, 1, 0], [1, 0, 1, 0]]
のように同じのばかりが出てしまいます。
どうしてこうなってしまうのでしょうか
428デフォルトの名無しさん:2007/03/08(木) 00:32:40
[[0]*4]*4で行われてるのは浅いコピーだからリストの中のリストは全部同じ一つのオブジェクトだよ。
かわりに、[[0]*4 for n in xrange(4)]と書けば望んだ結果になると思う。
429デフォルトの名無しさん:2007/03/08(木) 00:37:53
ありがとうございます。
勉強不足でした。
430デフォルトの名無しさん:2007/03/08(木) 00:39:35
てか、普通にライブラリリファレンスのシーケンス型のページで解説されてるよね。
431デフォルトの名無しさん:2007/03/08(木) 08:44:16
つまりチュートリアルに書くべき内容なんだよな。
432デフォルトの名無しさん:2007/03/08(木) 08:45:16
>>431
チュートリアルには書いてあるし、まともな入門書にも書いてある。
433デフォルトの名無しさん:2007/03/08(木) 09:18:17
もっとも書いてあるって言うことと
分かりやすいか・理解できるかは
若干ベツモノ

python に限らず...
434デフォルトの名無しさん:2007/03/08(木) 11:04:00
いろんな言語とのインターフェイスが充実してるから
pythonを触り程度に勉強した。

処理の本質的な部分はlispで書いて
lisp -> python -> c++
という流れでくっつけたいのだけど
どこかでつまづかないのだろうか

c++は自分がやりたい分野のライブラリーが充実してる
435デフォルトの名無しさん:2007/03/08(木) 11:42:02
lisp->c++ じゃない理由はなんだろう。
436デフォルトの名無しさん:2007/03/08(木) 11:51:33
pythonですでにいくつかスクリプトを作ってしまったことと、

lisp->python->c++
じゃなくて
場合によっては
haskell -> python -> c++
に変更される場合もあるからです

haskell- > c
はあるけど
haskell -> c++
はない
437デフォルトの名無しさん:2007/03/08(木) 13:09:10
なるほど。boost::python とか使えば Python→C++ は超らくちんだからな。
438デフォルトの名無しさん:2007/03/08(木) 16:11:25
pythonで、オブジェクトのインスタンス変数の一覧はどうやって取って来れますか。
439デフォルトの名無しさん:2007/03/08(木) 16:48:47
dir(obj)
440デフォルトの名無しさん:2007/03/08(木) 18:27:13
数値計算ライブラリの自動チューニングに関する講演会
http://www.hpcc.jp/swopp-announce/msg01614.html

> A Python based infrastructure to the ACTS Collection
441デフォルトの名無しさん:2007/03/08(木) 20:49:28
>>440の前日にも講演があるみたい。
http://www-solid.eps.s.u-tokyo.ac.jp/~nakajima/seminars/0704-WS/

> Two High-Level User Interfaces for Computational Scientists: PyACTS and DCT
442デフォルトの名無しさん:2007/03/08(木) 22:30:42
Pycon a "hiring fest"
http://radar.oreilly.com/archives/2007/03/pycon_a_hiring.html

   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)  Half the lightning talks ended (or started) with "We're hiring" って
  |     ` ⌒´ノ     求人多杉だろ、常識的に考えて…
.  |         }
.  ヽ        }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \
443デフォルトの名無しさん:2007/03/08(木) 22:35:42
>>439
thank you
444デフォルトの名無しさん:2007/03/09(金) 22:58:54
>>442
Pythonを使うヤツには能力の高いデキるヤツが多い。
できるヤツと出来ないヤツの間には
仕事の成果に何十倍もの開きがあるとかないとか。
つまりだ。
烏合の衆数十人の会社を
デキるヤツ一人が負かす可能性があるってことだ。
一人の力で競争原理が変わる可能性があるんだよ。
だからあっちの企業はPython使いを雇いたがる。
企業の中で腐ってたり
芽が出なくて逃げ込むようにPythonを使っているヤツではなく
自ら道を切り開く力を持っている、本当にデキるPython使いをな。
445デフォルトの名無しさん:2007/03/10(土) 00:01:10
一から十まで脳内設定の垂れ流しってどうよ
446デフォルトの名無しさん:2007/03/10(土) 00:25:32
小魚ばっかりですな
447デフォルトの名無しさん:2007/03/10(土) 00:31:25
駄目だこりゃ。
448デフォルトの名無しさん:2007/03/10(土) 00:46:42
>企業の中で腐ってたり
>芽が出なくて逃げ込むようにPythonを使っているヤツではなく
俺のことかな
449デフォルトの名無しさん:2007/03/10(土) 00:52:42
おれおれ
450デフォルトの名無しさん:2007/03/10(土) 00:53:28
行きたいけれど関西だ

圏論勉強会って研究会扱いで旅費申請できるのだろうか
451デフォルトの名無しさん:2007/03/10(土) 08:44:36
「ぷろぐらむ書けるの?」って上司に聞かれて
「ぱいそんならおk」っていうと諦めて帰ってくれるんだよね
452デフォルトの名無しさん:2007/03/10(土) 10:27:39
>>451
お前さんの普段の行動が香ばしいのが諦められる原因だろ.
Pythonのせいにするなよ(wwwwwwwwwwww
453デフォルトの名無しさん:2007/03/10(土) 10:40:54
御前は世間をしらない。Visual Basic だけがプログラム言語だと思っている上司が珍しくない
454デフォルトの名無しさん:2007/03/10(土) 11:55:56
何でも人のせいにするヤツって居るよな。
そういうヤツが歳だけ余計に食って老害垂れ流すんだろうな。
455デフォルトの名無しさん:2007/03/10(土) 12:01:21
駄目な奴には駄目な上司.
これが世間の法則だが
駄目な奴だからってあまりいじめない方がいいと思うよ.
456デフォルトの名無しさん:2007/03/10(土) 12:10:43
まぁ>>453は極端な例だろうけど、企業の場合遊びでやってるわけじゃないから
ソースのメンテナンスや引きつぎっつうもんがあるわけで。

その会社にPython使いが希少であるという状態なら、「Pythonにしたいです」
という提案は受理されないだろうな。

「PythonならC/C++やJavaやPerlやLispのような他の言語に無い
こんな素晴らしいことが出来ます」と滔々とプレゼンテーションできるなら
まだ別かも知れないが。

457デフォルトの名無しさん:2007/03/10(土) 12:51:15
下流企業の実態なんて興味ないよ
458デフォルトの名無しさん:2007/03/10(土) 14:02:10
>>457
超一流企業に勤めている>>457なら、下流企業のアフォ上司も
簡単に説得可能なんだろうな。
試しにここでプレゼンしてみ?
459デフォルトの名無しさん:2007/03/10(土) 14:08:44
「下流企業ではない」が「超一流企業である」に飛躍してしまうのが
下流企業に勤める負け犬の思考の限界。
460デフォルトの名無しさん:2007/03/10(土) 14:15:10
煽りはいいからお前さんのプレゼン能力を見せてみろよ。
聴いてやるから。
461デフォルトの名無しさん:2007/03/10(土) 14:43:00
脳内の想像だけで他人を上司を説得できない負け犬、無能、下流企業呼ばわり
なんだから、さぞかし素晴らしい御託を述べてくれるんだろうて。
実に楽しみだな。
462デフォルトの名無しさん:2007/03/10(土) 14:43:21
>>456
> こんな素晴らしいことが出来ます

素晴らしい結果を出すことは他の言語でも大差ないんだろうけど、
プログラミングそのものやソース書くときのストレスが少ない、
っていうのが一番のメリットだと思う。
でもそういうことは、他の人にアピールするの難しいんだよね。
463デフォルトの名無しさん:2007/03/10(土) 14:48:48
>>462
そら、あんたが無能で下流企業の負け犬だから、
そういう非定量的で感覚的な内容しか出てこないんだろうな。
それじゃ、他人にはアピールできないわ。
464デフォルトの名無しさん:2007/03/10(土) 14:55:21
>>458
アフォ上司の説得なんて時間の無駄。さっさと出世しておまえが上司になるか、
それが不可能なら転職するか、それも無理ならあきらめろ。w
465デフォルトの名無しさん:2007/03/10(土) 14:56:08
>>463
そんなことしか言えないから、おまえはろくなプログラムが書けないんだよ。
466デフォルトの名無しさん:2007/03/10(土) 14:57:08
>>464
社会のしがらみを知らないNEETのただの妄言か。
アフォくさ。
467デフォルトの名無しさん:2007/03/10(土) 14:58:22
>>466
そんなことしか言えないからアフォ上司の下で働く羽目になったんじゃないのか?
468デフォルトの名無しさん:2007/03/10(土) 15:00:09
>>465
あのな。
>>462を読み直してみろよ。
「〜だろうけど」
「〜と思う」
著しく感覚的で主観的であることを示す表現。
具体的で定量的なものは何も無い。
「なぜ」ストレスが少ないか、具体的な根拠が何も無い。
C++や、Rubyや、JavaScriptや、Lispに比べてどうか?

こんなんで「他人にアピール」出来ると思ったら、それこそお笑いだぞ。
469デフォルトの名無しさん:2007/03/10(土) 15:01:00
> そんなことしか言えないから
その言葉、そっくりそのまま返してあげるよ。
470デフォルトの名無しさん:2007/03/10(土) 15:01:43
勤めてるのが中小企業でも大企業でも
「上司が」とか「マイナー言語だから」と諦めるような奴は人間として「下流」だろ。
どんな状況でも
自分のやりたいことが出来るように道を切り開く人間こそ勝ち組なんだよ。

転職したって変わらないよ。
Python使ってる企業に移ったって
下流人間は別のことでフラストレーション感じるに決まってる
471デフォルトの名無しさん:2007/03/10(土) 15:03:14
>>470
だから、勝ち組なら勝ち組らしいプレゼンをしてみせろよ。ここで。
聴いてやるからさ。
自分は「下流」じゃないんだろ?その言い草なら。
472デフォルトの名無しさん:2007/03/10(土) 15:04:26
>>468
おまえ2chのレスに何を求めてるんだ?w
無料でそんな素晴らしいプレゼンが聞けるとでも思ってるの?
473デフォルトの名無しさん:2007/03/10(土) 15:05:10
>>471
煽るだけなら来るなよ。いいかげんうざいぞ。
474デフォルトの名無しさん:2007/03/10(土) 15:05:52
>>472
要はできないから逃げた、と。
そうだよなぁ。下流企業づとめどころかNEETだもんな。
475デフォルトの名無しさん:2007/03/10(土) 15:05:57
>>471
>だから、勝ち組なら勝ち組らしいプレゼンをしてみせろよ。

ここで?
無理に決まってるだろ(www

下流の常識はすごいな(wwwww
Rubyでも使えば?
476デフォルトの名無しさん:2007/03/10(土) 15:06:02
「下流」という言葉が彼のコンプレックスを刺激してしまったようですね
477デフォルトの名無しさん:2007/03/10(土) 15:07:00
文句しか言う気の無いやつにプレゼンして意味あるの?
478デフォルトの名無しさん:2007/03/10(土) 15:07:18
ないよ
479デフォルトの名無しさん:2007/03/10(土) 15:07:41
>>475
> 下流の常識はすごいな(wwwww
> Rubyでも使えば?

なんでそこでRubyとか出てくんの?
もしかしてPython使ってる俺エライ、Rubyお子様、とか意味不明な
優越感でも持ってんのか?

たかが言語にそれほど拘ってる奴、はじめて見たよw
480デフォルトの名無しさん:2007/03/10(土) 15:07:43
下流のくせにPythonを使えばハッカーになれると思ったのかな。
元々能力のある奴がPythonを使うから
常人離れしたスループットを出せるというのが現実だというのに。
お目出たい下流だな。
481デフォルトの名無しさん:2007/03/10(土) 15:08:06
上司も大変だなw
482デフォルトの名無しさん:2007/03/10(土) 15:08:46
>>479
>もしかしてPython使ってる俺エライ、Rubyお子様、とか意味不明な
>優越感でも持ってんのか?

この件に関して、ここで"プレゼン"してくれよ.
ぜひお願いするよ.
483デフォルトの名無しさん:2007/03/10(土) 15:08:56
この流れなら言える
ZODBとzope.interfaceとtwistedがあれば大体おk
484デフォルトの名無しさん:2007/03/10(土) 15:09:40
>>480
> 元々能力のある奴がPythonを使うから

アフォくさ。本物のハッカーなら言語なんか関係あるか。
485デフォルトの名無しさん:2007/03/10(土) 15:09:46
>>462
Pythonの一番いいところは
コードスタイルが自然に統一されて、読みやすいことじゃね?
486デフォルトの名無しさん:2007/03/10(土) 15:09:58
コーディングトラブルの約70%はif文などでの{}省略
ttp://pc11.2ch.net/test/read.cgi/tech/1173416521/l50

Pythonならこの70%のトラブルを0にできるんだぜ
487デフォルトの名無しさん:2007/03/10(土) 15:10:01
>>483
いや、それはどうかな?
ちゃんとプレゼンしないと納得してもらえないらしいぞ。w
488デフォルトの名無しさん:2007/03/10(土) 15:10:32
なにこの流れ。。。。
489デフォルトの名無しさん:2007/03/10(土) 15:10:54
>>485,486
つまりフリーフォーマット言語は糞でありFORTRAN77に戻るべきなんだな俺たちはw
490デフォルトの名無しさん:2007/03/10(土) 15:10:58
なんでプレゼン厨が湧いてるの?
他の言語の差し金?
つまんないことでケンカしないで
適材適所で使うのが賢いよ
491デフォルトの名無しさん:2007/03/10(土) 15:11:16
>>484
>本物のハッカーなら言語なんか関係あるか。

あるよ。
ハッカーにとっても一日は24時間だからね。
真のハッカーは生産性の良い物を使う。
492デフォルトの名無しさん:2007/03/10(土) 15:11:46
>>489
書きやすさと読みやすさのトレードオフだなw
もう固定フォーマット言語には戻れんな
493デフォルトの名無しさん:2007/03/10(土) 15:12:16
>>491
そうだな。そしてそれがPythonであるとは限らないな。
494デフォルトの名無しさん:2007/03/10(土) 15:12:21
楽しい土曜日ですよ
495デフォルトの名無しさん:2007/03/10(土) 15:13:52
ようし、パパ月曜にプレゼンして
D言語を仕事で使えるように上司を説得するぞう!!!
496デフォルトの名無しさん:2007/03/10(土) 15:13:57
>>492
初めて好意的なレスが返ってきたが……
>>489は皮肉含みのジョークでつよ。

俺って親切だなぁ。
497デフォルトの名無しさん:2007/03/10(土) 15:14:25
俺は母国語がC++で、
大規模開発はC++ or C#
小規模ツールはPython or Perlかな。

Pythonだと人間の思考に近くて楽しいね。
C++は自分が計算機になったみたいに感じるw
498デフォルトの名無しさん:2007/03/10(土) 15:14:31
>>495
DはPythonよりずっと駄目だろw
499デフォルトの名無しさん:2007/03/10(土) 15:15:14
>>497
> C++は自分が計算機になったみたいに感じるw

それは凄いな。「C」なら判るが。
C++でどんな機械語に落ちるかイメージできるか?
500デフォルトの名無しさん:2007/03/10(土) 15:15:20
逆にさ、発想を変えて、
Pythonのダメなところを上げていけば
いいところが浮かび上がるんじゃね?
501デフォルトの名無しさん:2007/03/10(土) 15:15:48
>>497
所詮高級アセンブラだからね.
502デフォルトの名無しさん:2007/03/10(土) 15:16:37
>>499
機械語うんぬんより、C++でやることの大半はメモリ管理だからねw
503デフォルトの名無しさん:2007/03/10(土) 15:18:31
>>499
もしできないなら C++ は使わないほうがいいよ。思わぬ落とし穴に填るかも。
テンプレートパズルを駆使して神のようなコードを吐かせる快感こそが C++ の醍醐味だ。
いつもそんなんじゃ疲れるから、普段は C# や Python を使うが。
504デフォルトの名無しさん:2007/03/10(土) 15:19:17
>>503
C++のテンプレートは不完全だから嫌いよw
505デフォルトの名無しさん:2007/03/10(土) 15:19:25
>>502
C++ではobject の ownership を意識していなければならないのは確かだが
Cほどではないだろう。
コンストラクタ/デストラクタやboost::shared_ptrのようなものもあるし。
506デフォルトの名無しさん:2007/03/10(土) 15:20:37
>>504
そこがまたパズルっぽくて(ry
507デフォルトの名無しさん:2007/03/10(土) 15:21:40
>>503
悪いが俺は出来ない。
C++の「テンプレートパズル」と「機械語」では抽象レベルが違いすぎる。
C++で考える時は、メモリのことは考えるが、機械語レベルでは考えないな。

ついでに言うと、
> テンプレートパズルを駆使して神のようなコードを吐かせる快感こそが C++ の醍醐味
悪いがこういうオナニストと俺は一緒に仕事はしたくないな。
508デフォルトの名無しさん:2007/03/10(土) 15:21:50
>>505
ガベージコレクション言語をやっちゃうと
デストラクタがあっても苦痛は苦痛なんだよね。

>>503
最近はコンパイラが、人間の思いも寄らないような最適化するから、
変な工夫を入れると悪化することもあるけど。
509デフォルトの名無しさん:2007/03/10(土) 15:22:38
また隔離スレッドができる予感・・・・・・
510デフォルトの名無しさん:2007/03/10(土) 15:23:33
>>507
それが正しいと思うよ。
一昔前とは変わってきてる。
いまのプログラマは高級言語で高い生産性が求められるから、
必ずしも機械語の知識は必要ないし。
511デフォルトの名無しさん:2007/03/10(土) 15:23:57
>>508
C++でもGCは使える。が、明白にスコープでobjectがdestructされることに
慣れており、それを好むC++ユーザが多いように思う。
512デフォルトの名無しさん:2007/03/10(土) 15:27:16
そうかな。俺だったら機械語の知識のない人と一緒に C++ の仕事なんて絶対に
やりたくないが。
意識する必要があるかどうかと知識が必要あるかどうかは別の問題だよ。
機械語の知識のない人が C++ を触るなんて、まさに気違いに刃物。
そういう人は Python, C#, Java などで仕事していてほしい。
513デフォルトの名無しさん:2007/03/10(土) 15:29:43
>>512
Contextを読み取る能力に欠けているのか、意図的に誤読しているのか。

「機械語の知識の有無」を論じているのではないよ。

C++の抽象レベルで機械語と対応付けて一々頭の中で考えているかを
論じていただけだ。
無論、ケースバイケースでそうすることもあるだろうけどな。
514デフォルトの名無しさん:2007/03/10(土) 15:31:36
C#でも外部ライブラリ呼ぶ時とか、ポインタをpinしてGCのリロケーションの
対象外にしないといけとか色々あるだろ。
515デフォルトの名無しさん:2007/03/10(土) 15:32:59
>>512
>>513のいうように、今は変わってきてるかな。

子供が円周率を100桁暗記するより、英単語の1つでも覚えた方がいいと思うように、
機械語を覚えるより、データ構造やモジュールの使い方を覚えたがいい
というような感じかな。

確かに、PythonやC#を使った方がいいというのは同意。
516デフォルトの名無しさん:2007/03/10(土) 15:36:17
>>513
>>512
>>510
>> 必ずしも機械語の知識は必要ないし。
に対する反論。つまりC++には「必ず機械語の知識が必要」だと思う。

>>513にも反論するとすれば、C++には思わぬ落とし穴が結構あるので、機械語レベル
の話を全く頭から払拭してプログラムを書くのは危険が伴うと思う。
強く意識するかどうかは別としても、そういう知識のない人が使う言語れはないと思う。

これ以上 C++ の話を続けるならば、他のスレへ移動しましょう。
517デフォルトの名無しさん:2007/03/10(土) 15:37:49
>>500がいうように、Pythonの欠点を挙げてみない?
518デフォルトの名無しさん:2007/03/10(土) 15:37:50
隔離スレッドができる悪寒
519デフォルトの名無しさん:2007/03/10(土) 15:38:30
>>516
>これ以上 C++ の話を続けるならば、他のスレへ移動しましょう。

全くだ。C++の本スレなんか最近は閑古鳥が鳴いているってぇのに。
お前ら本スレに帰れ。
520デフォルトの名無しさん:2007/03/10(土) 15:38:39
>>517
何が目的なんだよ(www
521デフォルトの名無しさん:2007/03/10(土) 15:41:08
>>518
それは作れという意味ですか?
どういう名前にしたらいいかな。
522デフォルトの名無しさん:2007/03/10(土) 15:41:08
敵国の情報工作だ。乗ってはならんぞ。w
523デフォルトの名無しさん:2007/03/10(土) 15:43:58
>>516
何を持って「機械語レベル」と言っているかなんだが。

C++で書くときにいちいちレジスタやI/Oポートやニーモニックを意識するか?
むしろそうせねばならないとすれば、そっちの方が問題があると思うぞ。

ということなんだがな。
524デフォルトの名無しさん:2007/03/10(土) 15:43:59
>>520
Pythonの欠点を盲目的に挙げてみれば、
実は他の言語にも共通した欠点を抱えており、
逆にPythonのいいところも分かるんじゃないかと
525デフォルトの名無しさん:2007/03/10(土) 15:45:17
>>523-524
隔離スレの名前は「Pythonと多言語比較」でいいかい?
526デフォルトの名無しさん:2007/03/10(土) 15:45:54
「他言語」では?
527デフォルトの名無しさん:2007/03/10(土) 15:46:20
間違えちゃった・・・・・・
528デフォルトの名無しさん:2007/03/10(土) 15:47:05
pythonの嫌いなところは
デザパタ話だしたり、C++の話しだすところ。
スレ違いだってことを"""自覚"""できない奴がいるところ。
529デフォルトの名無しさん:2007/03/10(土) 15:47:42
>>528
それは「言語の」特性ではないな。
もっとプレゼン能力を磨け。
530デフォルトの名無しさん:2007/03/10(土) 15:48:47
>>528
ちゃんとプレゼンしないと上司を説得できないところも欠点だよなw
531デフォルトの名無しさん:2007/03/10(土) 15:49:54
スレ違いだってことを"""自覚"""できない奴がいる
>>529、君のことだよ
てか、隔離したデザパタ+pythonスレも全然伸びてないがな
ここで話してた奴、もっと向こうもりあげろよw
532デフォルトの名無しさん:2007/03/10(土) 15:53:18
やだよめんどくさい
533デフォルトの名無しさん:2007/03/10(土) 15:55:57
>>530
それは大いなる欠点だ。
もうPython使うのやめた。
534デフォルトの名無しさん:2007/03/10(土) 15:59:26
中身のない話をするときに限ってスレがよく伸びる
535デフォルトの名無しさん:2007/03/10(土) 16:00:08
そろそろメタクラ(ry
536デフォルトの名無しさん:2007/03/10(土) 16:07:20
>>531
「プレゼン」とかいうキーワードにしか飛びつけない厨房乙。
537483:2007/03/10(土) 16:29:27
Zope最高! Zope様々! Zope万歳!
538デフォルトの名無しさん:2007/03/10(土) 16:37:16
かわいそうに。こうはなりたくない。
539デフォルトの名無しさん:2007/03/10(土) 16:50:56
宗教くさい流れだな。もしやR(ry
540デフォルトの名無しさん:2007/03/10(土) 16:55:50
ぱいそんwww
541デフォルトの名無しさん:2007/03/10(土) 16:58:11
Zope3最高! Zope3様々! Zope3萌え!
542デフォルトの名無しさん:2007/03/10(土) 17:01:33
PythonのきらいなところはR○○○厨をひきつけちゃうところです。
543デフォルトの名無しさん:2007/03/10(土) 17:03:01
>>541
かわいそうに.完全に負け組下流だな.
同じPython使いでもこうはなりたくない.
あっちいけよ、悪霊退散、シッシッ!!
544デフォルトの名無しさん:2007/03/10(土) 17:12:13
>>542
REXX厨?
545デフォルトの名無しさん:2007/03/10(土) 17:25:34
RexじゃくてLexだろ
546デフォルトの名無しさん:2007/03/10(土) 18:20:45
547デフォルトの名無しさん:2007/03/10(土) 19:53:34
こんなマイナーな言語しってるなんて、相当の言語オタだね?
というわけであの人に違いない(www
548デフォルトの名無しさん:2007/03/10(土) 20:29:50
>>535
終った技術の話をしてもなあ
それより関数型プログラミングの話をしようぜ
549デフォルトの名無しさん:2007/03/10(土) 20:52:07
それよりも



  _  ∩
( ゚∀゚)彡 おっぱい!おっぱい!
 ⊂彡
550デフォルトの名無しさん:2007/03/11(日) 02:29:39
>>530
説得しなければならない上司などいない
551デフォルトの名無しさん:2007/03/11(日) 02:34:11
import Tkinter as Tk
canvas = Tk.Canvas(width=256*5-4+20, height=120)
x=10
for i in range(0, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (255,i,0))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (255-i,255,0))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (0,255,i))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (0,255-i,255))
    x += 1
for i in range(1, 256):
    canvas.create_line(x,10,x,110,fill="#%02x%02x%02x" % (i,0,255))
    x += 1
canvas.pack()
canvas.mainloop()
552デフォルトの名無しさん:2007/03/11(日) 03:21:29
>>551
wxPythonでまねして作ろうとしたら、
色の指定はwxPenオブジェクトで指定して、
wxDCのSetPenメソッドでwxPenを置き換えて、それで直線を描く、
って3段階になるから手間がかかる。
553デフォルトの名無しさん:2007/03/11(日) 03:52:29
>>550
職が無いお前には当然いないよな。
554デフォルトの名無しさん:2007/03/11(日) 04:18:11
>>552
全然知らないで効くんだけど、一つ関数を書けば良いだけじゃなくて?
555550:2007/03/11(日) 04:19:25
>>553
断定口調は、それが外れたときに大恥をかく。
しかし、俺が職についていることを証明する手段は無い。
556デフォルトの名無しさん:2007/03/11(日) 04:24:06
それ以前にまず本物の550だと証明する手段が無いだろう。
557デフォルトの名無しさん:2007/03/11(日) 09:26:55
NumPyっていうモジュールのWindows版落としてインストールしたら.pyが
C:\Python25\Lib\site-packages\numpy
にインストールされたんですけどimportできません。

sys.path見ると
C:\Python25\Lib\site-packages\
は入ってるんですが、もしかしてサブディレクトリのnumpy内のモジュールはパスに入らないんでしょうか?
558デフォルトの名無しさん:2007/03/11(日) 10:35:12
C:\Python25\Lib\site-packages\numpy\__init__.py が本当に存在しているか? あれば import numpy ができるはず。

また import numpy 一行がどんなエラーを返しているのか、エラー・コメントを全部出せ
559デフォルトの名無しさん:2007/03/11(日) 10:54:52
import NumPy
ってやってない?
560デフォルトの名無しさん:2007/03/11(日) 11:18:03
>>558
>>559
ありがとうございます。import numpyでできました。
numpy.pyというファイルがないのでnumpyでimportできるとは思いませんでした。
モジュールはファイル名と同じと思ってたのですが、違う場合もあるんですね・・・
561デフォルトの名無しさん:2007/03/11(日) 11:26:39
自分で関数やクラスを設計しているときに「それは既出だよ」と忠告してくれるソフトはありませんか?
Pythonの全部のモジュールを把握するの無理っぽい。
562デフォルトの名無しさん:2007/03/11(日) 11:30:30
>>561
grep とか
563デフォルトの名無しさん:2007/03/11(日) 20:32:07
何のために名前空間があるんだ。
564107:2007/03/12(月) 05:25:24
Monarcのバイナリzip版を動かして見ようと試行錯誤してみたり、、、
readmeないからソース嫁に従う

Monarc.pyから処理開始->app = Monarchore.MoApp(0)
Monarchore->locale設定 conf読み込み MainFrame生成
self._frame = MoMainFrame(None, id, MA_APPTITLE, owner=self, config=self._config)
def __init__にてcommunicatorを始動させるコードself.loadMenu('TF2', '2ch', None)
鮮やかにcommunicatorオブジェクトを取得する それをMoBoardMenuTreeに渡す。
self.AddRoot('Root')でトップノードにRootを追加。たぶんdef OnReload(self, evt)も
そのとき呼ばれる topics = self.communicator.getTopics() にてカテ一覧を取得する
最後に self.Expand(self.treeroot) でツリーを展開しとく。
「結果」
Root
- root

むぅ。起動までは出来たけど、カテ一覧の取得 or それの読み込み部分 でこけてる罠。
やっぱりバイナリzipをそのまま動かすのは難しいぽ。wxpython入れてsrcコンパイルしないと駄目ぽ

でもバイナリzip版って、py2exeでexe化してるから、python も wxpython もなくても
dll の呼び出しだけで起動できるもの、なような気がするし、となると
bbsmenuが移転したからカテ一覧の取得にこけてる??? でも運営とソフトウェアは
残ってるからその二つは今でも取得できそうだし。なんか意識が朦朧として来て
何言ってるか訳が分らなくなって来てる罠。もう寝るぽ。がっ。(もうグダグダ)
565デフォルトの名無しさん:2007/03/12(月) 14:56:58
>>464
とんがり頭の上司で検索
566デフォルトの名無しさん:2007/03/12(月) 15:01:01
567デフォルトの名無しさん:2007/03/12(月) 15:03:11
>>467
アホ上司の下で頻繁に変わる思いつきをコーディングさせられる2年は地獄だった
4月で脱出できるが
568デフォルトの名無しさん:2007/03/12(月) 15:17:32
569デフォルトの名無しさん:2007/03/12(月) 15:20:11
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
とんがり頭=髪のとんがった上司 の言動
570デフォルトの名無しさん:2007/03/12(月) 15:23:20
よ〜し パパ cgi を lisp で書いちゃうぞ〜
571デフォルトの名無しさん:2007/03/12(月) 15:58:16
>>567
おめ
572デフォルトの名無しさん:2007/03/12(月) 16:03:43
頭のとんがりと髪のとんがりを混同すべきではないと思うが
573デフォルトの名無しさん:2007/03/12(月) 16:14:20
上司=朝日山親方
574デフォルトの名無しさん:2007/03/12(月) 16:17:22
とんがり頭って訳してる人がいて
そっちおぼえてしまった
575567:2007/03/12(月) 16:24:57
>>571
あり
後任は中国人らしい
誰もやりたがらない仕事だしな
576デフォルトの名無しさん:2007/03/12(月) 16:26:13
577デフォルトの名無しさん:2007/03/12(月) 16:30:15
ナポレンフィッシュみてえ
578デフォルトの名無しさん:2007/03/12(月) 16:36:33
身長が低かったため、新弟子検査をパスするためシリコンを埋め込んだ後遺症(?)らしい。
気の毒な気もするな。
579デフォルトの名無しさん:2007/03/12(月) 17:45:10
580デフォルトの名無しさん:2007/03/12(月) 18:12:20
>>576
マゲ結ってる時期に引っ張りすぎたんじゃね?
581デフォルトの名無しさん:2007/03/12(月) 18:25:44
582デフォルトの名無しさん:2007/03/12(月) 18:56:24
>>572
髪のことを頭って言うのは結構普通だとおもう。
散髪しに行くことを「頭きりに行く」って言うし(笑
ttp://sky.ap.teacup.com/umazin/99.html
583デフォルトの名無しさん:2007/03/12(月) 19:00:12
>>576
相撲板では常識的な事実
ttp://page.freett.com/template/index2.htm#corn
584デフォルトの名無しさん:2007/03/12(月) 19:07:19
>>572
        _.. -‐ ' "     ヽ ̄ノ^7__         <              >
    `ー ''"--―――-r⌒``~`゙゙`''ヘ/         <  異 議 あ り!! >
     `ー--――ー--->  〜-、_, ',          <             >
      `ー-- .._ へ/   くてi` 〈            ∨∨∨∨∨∨∨∨
       `ー-_   | ^i        , ノ                    _.. ‐ァ=r‐''⌒゙二ニ二つ
          ヽr''ヘ、_     ,.-=ァ/                _. -‐ '"´  l l    r} } }l
          /   !、   {__//    __      . -‐ ' "´        l ヽ  、 ヽ_ノノ
          ノ       、   ̄ /-‐ ' "´/`゙ ーァ' "´  ‐'"´         ヽ、`ーテヽJ
     _.. -‐''フ|フヽr-‐ ''''フ. ̄「´      /   /                __.. -'-'"
  . ‐ '7    く/|〉-rへ. /   l     l   /            . -‐ '"´

「とんがり頭」と聞いて真っ先にこれを思い出した
585デフォルトの名無しさん:2007/03/12(月) 19:38:09
知合いも、相撲鳥になるために頭にシリコン埋め込んでたわ
586デフォルトの名無しさん:2007/03/12(月) 19:40:35
相撲鳥って飛びにくそうだな
587デフォルトの名無しさん:2007/03/12(月) 19:41:22
飛べない鳥です
588デフォルトの名無しさん:2007/03/12(月) 19:54:26
ただの豚です
589デフォルトの名無しさん:2007/03/12(月) 19:56:13
無料の豚か
590デフォルトの名無しさん:2007/03/12(月) 21:41:19
シェア豚もいるんでしょうか?
591デフォルトの名無しさん:2007/03/13(火) 00:22:09
オープンポーク
592デフォルトの名無しさん:2007/03/13(火) 02:02:10
pyjamasを使ってる人居ませんかー
593デフォルトの名無しさん:2007/03/13(火) 11:09:06
・趣味プロジェクトにしか見えない
・1.0が出そうにない
594デフォルトの名無しさん:2007/03/13(火) 11:16:38
結論:
だからオレが使って作ってガンガンコミットする
595デフォルトの名無しさん:2007/03/13(火) 11:33:50
StringIO.write()をつかうとUnicodeErrorが出るんですけど回避策あったら教えてください。

# -*- coding: utf-8 -*-
from StringIO import StringIO
io = StringIO()
io.write(u'あいうえお')
print io.getvalue(),
## UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

マニュアルにはstringもunicode stringも使えると書いてあるんだけどなあ。
596デフォルトの名無しさん:2007/03/13(火) 11:41:24
print io.getvalue().encode('utf-8')

してみてどうなる?
597595:2007/03/13(火) 11:42:31
>>595
エラーになってたのはStringIO.write()じゃなくてprint statementの方だったorz
output = io.getvalue()
print output.encode('utf-8')
で問題なく動いた。
598デフォルトの名無しさん:2007/03/13(火) 14:09:46
入門書嫁。
599デフォルトの名無しさん:2007/03/13(火) 15:00:31
ハゲワロス
>>>from __future__ import braces
600デフォルトの名無しさん:2007/03/13(火) 17:53:32
>>599
最悪だ。(w
601デフォルトの名無しさん:2007/03/13(火) 20:17:35
柴田淳の新譜と "TurboGearsxPython" 買ってきた
602デフォルトの名無しさん:2007/03/13(火) 20:20:29
GWTいいなぁ
603デフォルトの名無しさん:2007/03/13(火) 22:28:13
pyPgSQLでPostgreSQLと連携したプログラムを書いてるんだけど、
pyPgSQL.PySQL.connect()の host って何を代入すればいい?
apache 起動してないし、webと連携するわけでもないんだけど、localhost でいいのかな?

ここでは場違いかもしれないけど、教えてください。
604デフォルトの名無しさん:2007/03/13(火) 22:29:01
PostgreSQLが稼働してるホストを指定すればいいんじゃね?
605デフォルトの名無しさん:2007/03/13(火) 22:44:15
ああ、んじゃたぶん localhost でいいや。
端末のタイトルが --@localhost だし。たぶんこれでいいんだろう。

ありがとう。
606デフォルトの名無しさん:2007/03/14(水) 00:27:13
607デフォルトの名無しさん:2007/03/14(水) 00:36:25
>>606
うむ。非常に恥ずかしいがそのままにしておこう。
608デフォルトの名無しさん:2007/03/14(水) 00:38:25
>>603
apacheサーバは関係ない。SQLサーバのこと。
PostgreSQLはれっきとしたSQLデータベースサーバなので
ローカルマシン以外にも置けるのだよ。ってか普通。
609デフォルトの名無しさん:2007/03/14(水) 00:42:25
608は何より人生が分かってないと思う。
610デフォルトの名無しさん:2007/03/14(水) 00:58:06
coreduoマシーンでscipy 使って数値計算してるんだけど
計算速度を上げる為には,何をいじるべき?
(計算のボトルネックは粗行列の線形方程式みたい.)

デフォルトでインストールが最速なの?
611デフォルトの名無しさん:2007/03/14(水) 01:21:33
> Updated Cygwin Package: python-2.5-1
キター
612デフォルトの名無しさん:2007/03/14(水) 02:35:23
>>610
そういうアホな質問に「こうすれば速くなる」と答えられるような汎用の答えがあるのなら
それがデフォルトになっているとは思わないかね?
613デフォルトの名無しさん:2007/03/14(水) 02:44:48
>>612
すまん,質問が悪かった.

200x200くらいの粗行列の線形方程式をscipy使ってpythonで解きたいんだけれど
デフォルトのバイナリをインストールするのが最適かどうか教えてくだされ.
614613:2007/03/14(水) 02:52:48
os:windows
cpu:coreduo
です
615デフォルトの名無しさん:2007/03/14(水) 03:47:41
>>613
一般に、最適な解法は問題依存(つまり行列依存)なので何とも言えない。

SciPy の疎行列ソルバは UMFPACK または SuperLU らしい(つまり直接法ということ)。
なので反復法を使うとパフォーマンスが改善するかも知れない。
SciPy にはネイティブコードの反復法ライブラリは含まれてないっぽいので
そもそも SciPy という選択自体、最適でない可能性がある。
別の選択肢としては PyTrilinos とかその辺になるのかな(使ったことないので不明)。
一口に反復法といってもCG法(対称用)やらBiCG法(非対称用)やら掃いて捨てるほど
たくさん選択肢があるし、前処理(preconditioner)にもスケーリングだのILU分解だのと
色々あって適用するのとしないのとでは大違いだったりする。組合せは膨大。

よーするにあれこれ試すしかない。
616デフォルトの名無しさん:2007/03/14(水) 04:29:17
atlas呼べばいいじゃない
617デフォルトの名無しさん:2007/03/14(水) 08:58:15
3年待てばCPUが早くなって4倍くらいになるよ.
618デフォルトの名無しさん:2007/03/14(水) 12:53:08
python2.5でMSVCR8.dllをハンドルしてるバージョンってある?
extension作るのにVS2005使いたいんだけど
619デフォルトの名無しさん:2007/03/14(水) 13:02:32
msvcr80.dllって、VS2005のSP1でモノが変わったんじゃなかったっけか。
自分でソースからコンパイルするのが一番無難だと思うけど。
620デフォルトの名無しさん:2007/03/14(水) 14:29:06
「たった一度だけ動けばいいんだが実行に1時間かかるプログラムを30分に短縮しようとして3日悩む」ようなものだね。
621デフォルトの名無しさん:2007/03/14(水) 14:56:09
>>620
俺のことだ。って思ったヤツ挙手。


622デフォルトの名無しさん:2007/03/14(水) 15:45:41
プログラムの中で、64bitマシンで実行されているか32bitマシンで実行されているかの
条件分岐を行いたいのですが、どうやったらこのbit数を取得できるでしょうか?
環境はPython 2.4です。
623デフォルトの名無しさん:2007/03/14(水) 19:46:13
「最適化の第一原則は“最適化するな”だ」
624デフォルトの名無しさん:2007/03/14(水) 19:55:38
>>622
何のために区別したいのかにもよると思うが、Windowsなら
>>> import sys
>>> sys.platform
'win32'
で得られるような希ガス。Python2.5なら
>>> import ctypes
>>> ctypes.sizeof(ctypes.c_void_p)
4
ていう手もあるが、これも確実とは言いにくいな。
625デフォルトの名無しさん:2007/03/14(水) 20:22:45
>>> import sys, math, platform, struct
>>> platform.architecture()
('32bit', 'WindowsPE')
>>> struct.calcsize("P")
4
>>> math.log(2*(sys.maxint+1),2)
32.0

これも確実じゃない・・・よな
626デフォルトの名無しさん:2007/03/14(水) 20:45:55
64bitマシン上で32bitのpythonを動かす場合とかもあるし、
WindowsならGetNativeSystemInfo 呼ぶのが確実じゃね?
他のプラットフォームはわからん。
627デフォルトの名無しさん:2007/03/14(水) 21:01:55
/proc みたらいいんじゃね
628デフォルトの名無しさん:2007/03/14(水) 21:33:06
>620
べつに30分に短縮できなくてもいいから、
もうちょっとすっきり書きたいと思って
1週間悩むっていうのならいつもやってる
629622:2007/03/14(水) 22:09:43
>>624
> 何のために区別したいのか
あるプログラムを64bitマシンで動かすと不具合があって、
struct.pack('L', l) を struct.pack('I', l) に直すとOKだったとのこと。
この辺りのことが自分もよく分かってないのだけど、どの環境でも
動くようにするには条件分岐させるのがいいのかなと。
自分のもとには32bitマシンしかないので確認できる環境もないのだけど。。
630デフォルトの名無しさん:2007/03/14(水) 22:44:02
>>629
32bitか64bitかで分岐するんじゃなくて、不具合を起こすかどうかを実行時に調べて分岐するというのはどうですか。
631デフォルトの名無しさん:2007/03/14(水) 22:46:49
符号なし32bit整数としてpackしないとダメってことかな。64bitマシンでも
intは32bitらしいから。もっといい方法がありそうな気もするが:

import struct

for format in ('B', 'H', 'I', 'L', 'Q'):
    if struct.calcsize(format) == 4:
        I4 = format
        break
else:
    raise "no 32bit integer"

print I4 # このフォーマットを使う
632デフォルトの名無しさん:2007/03/14(水) 22:51:12
64bitマシンと言ってもいろいろあるからな。SPARCとかAlphaだとちょっと勝手が違うかも。
633デフォルトの名無しさん:2007/03/15(木) 00:34:49
VMwareとかVirtualPCとかQEMUとかで
試すことはできへんの?
634デフォルトの名無しさん:2007/03/15(木) 10:51:23
635デフォルトの名無しさん:2007/03/15(木) 13:06:59
googleの社員がつくってるのかな・
636デフォルトの名無しさん:2007/03/15(木) 15:00:37
ちがうしょ。
google codeに登録してるだけでほ
637デフォルトの名無しさん:2007/03/16(金) 22:17:08
2007.02.07に、Jython 2.2 beta1 がリリースされていた!
http://www.jython.org/Project/news.html

正直、もう次はないかと思ってますた。うれしい。
638デフォルトの名無しさん:2007/03/17(土) 00:22:58
それはただの通過点。jython-devじゃみんな2.3とか2.5のことばっか妄想してる。
639デフォルトの名無しさん:2007/03/17(土) 00:34:24
いまさら2.2ではちょっと安心できないわな
640デフォルトの名無しさん:2007/03/17(土) 00:35:09
>>629
struct.unpack('Q', chr(0)*8) を試す.
641デフォルトの名無しさん:2007/03/17(土) 00:40:23
#python-jpってチャンネルがあると聞いてIRC久々に立ち上げてみたら誰もおらん・・・さびしい
642デフォルトの名無しさん:2007/03/17(土) 00:43:02
質問です。以下のプログラムで中国語のテキストをユニコードに変換してコピーしようとしているのですが、
短いテキストならば問題なくコピーされるのに、大きなファイルになるとエラーが発生して途中までしかコピーできませんでした。
何が原因なんでしょうか・・・

import codecs
fin = codecs.open(r"c:\data\itest.txt","r","GB2312")
fout = codecs.open(r"c:\data\outputfile.txt","w","utf-8")

for line in fin:
fout.write(line)

fin.close()
fout.close()
643デフォルトの名無しさん:2007/03/17(土) 00:51:28
改行コードがおかしくて一行がメモリに載らないくらいでかいか、バイナリモードで開いてなくて嘘ヌル文字に到達するから。
644デフォルトの名無しさん:2007/03/17(土) 00:54:44
ttps://products.locus.co.jp/index.php3?dtl=pb910
既出だっけ?また入門書出るのね
645デフォルトの名無しさん:2007/03/17(土) 01:01:36
みんpyより136ページ薄くて同じ値段か・・・かなり微妙・・・
646デフォルトの名無しさん:2007/03/17(土) 01:02:52
>>642
どのくらいのサイズなのか、どういうエラーが出るのかぐらい書いてほしい
647デフォルトの名無しさん:2007/03/17(土) 01:05:08
>>644
同じ著者がノキアの携帯でPythonを使うって本だしてるけど
こいつPython知ってるのか、というような内容だったよ...orz...
648デフォルトの名無しさん:2007/03/17(土) 01:07:38
>>637
2.2っていうのはpython2.2準拠っていういみなのね・・・

>>638
2.3や2.5の仕様が既に固定してる時点で妄想でもなんでもないような・・・
649デフォルトの名無しさん:2007/03/17(土) 01:11:51
ああ、Nokia本のひとか、・・・我が道を行く人なんだね、・・きっとw
確かNokia本の前書きで、まだpythonはじめてから日が浅いですみたいなこと書いてたような・・・w
650642:2007/03/17(土) 01:32:41
>>646
すみません、中国からのアクセスは不安定でなかなか書き込みできないみたいなんです。
元のテキストは54KBです。
モードをrb,wbにしてみるとヌル文字はスペースで変換する旨のエラーが出ました。
一番下のエラー見る限りコピーしようとしてる原文に問題があるんでしょうか。

Traceback (most recent call last):
File "C:\filecopy.py", line 6, in <module>
for line in fin:
File "C:\Python25\lib\codecs.py", line 619, in next
return self.reader.next()
File "C:\Python25\lib\codecs.py", line 556, in next
line = self.readline()
UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 83-84: illegal multibyte sequence
651デフォルトの名無しさん:2007/03/17(土) 01:39:52
IronPythonの本のほうが気になるなぁ
たぶん買わないがw
652デフォルトの名無しさん:2007/03/17(土) 04:33:09
fin = codecs.open(r"c:\data\itest.txt","r","GB2312", "replace")
とか
fin = codecs.open(r"c:\data\itest.txt","r","GB2312", "ignore")
にすればとりあえず変換できるとは思うが、それでいいのかは何ともいえないな。
日本語みたく中国語にも複数エンコーディングがある可能性も捨てきれんし。
653デフォルトの名無しさん:2007/03/17(土) 05:01:47
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< 全部試せばいいんだ!!
    (つ  丿 \_________
    ⊂_ ノ
      (_)

http://www.python.jp/doc/2.4/lib/standard-encodings.html
gb2312, gbk, gb18030, hz とか中国語全部

http://ja.wikipedia.org/wiki/GB_2312
派生・後継規格あたりが非常に怪しい
654デフォルトの名無しさん:2007/03/17(土) 09:14:50
中国からwikipediaは見えません
http://slashdot.jp/articles/06/11/18/0528226.shtml
655デフォルトの名無しさん:2007/03/17(土) 15:10:18
すげー国だなw、想像の範囲外w、
656デフォルトの名無しさん:2007/03/17(土) 15:11:28
国丸ごと特定のページ見せないってのも一つの技術だとは思うが・・・w
657642:2007/03/17(土) 16:35:17
Wikipediaは直接接続できませんが、プロキシを介すと閲覧はできます。
編集はできないけれど閲覧ならできるということで中国政府もバランスを取ってるんでしょうね。
一時期Googleが全面的にシャットアウトされて大学中が大混乱に陥ったこともあります。

みなさんありがとうございます。codecs.openにreplaceを追加すると問題なくコピーできました。
ですがこの場合エラーを無視しているということですよね・・・うーん歯痒い・・・

問題のある原文をうpろだにあげてみました。
ttp://aip.heteml.jp/cgi/file/data/data1.txt
658デフォルトの名無しさん:2007/03/17(土) 17:04:27
総当り:
rawin = file('data1.txt', 'rb').read()
for enc in ('gb2312', 'gbk', 'gb18030', 'hz'):
    print enc.ljust(10),
    try:
        rawin.decode(enc)
        print 'YES'
    except UnicodeDecodeError:
        print 'NO'

結果:
gb2312     NO
gbk        YES
gb18030    YES
hz         NO

改良:
import codecs
codecs.open('out.txt', 'w', 'utf-8').write( codecs.open('data1.txt', 'r', 'gbk').read() )

正しく変換できたかどうかは判断のしようがないので知らん。
659デフォルトの名無しさん:2007/03/18(日) 00:28:25
>>644
python覚えて、ある程度使えるようになったから、
もっとハードコアなやつが欲しい。
入門書が一番需要があるんだろうけどさ。
660デフォルトの名無しさん:2007/03/18(日) 00:59:43
TurboGears × Python」購入した。
本に掲載のサンプルコードが取れるかとおもって出版社のサイトには
ないし、作者の名前でググってみたらオフィシャルサイトがあったんで、
いってみたらびっくらこいた。
661デフォルトの名無しさん:2007/03/18(日) 01:48:22
もう柴田淳ちゃんネタはいいよ
662デフォルトの名無しさん:2007/03/18(日) 02:04:05
すみません、質問です。
pythonでゲームを作っています。
アドベンチャー形式で物語を進める場面があり、そこは簡単なスクリプト言語のようなもので書けるようにしたいのですが、
pythonで実装するにはどうすればいいのでしょうか?
自分でスクリプトを作るという感覚がどうもよくわからないのです。
663デフォルトの名無しさん:2007/03/18(日) 02:15:45
幼稚園児にいきなり微分方程式の解き方を教えてくれと言われてもどこから
説明していいのか判らないようなもんだな。
664デフォルトの名無しさん:2007/03/18(日) 02:24:00
知ったかぶり力を最大限に発揮して・・・。
じゃあ、とりあえず

[wait time=200]
*start|スタート
[cm]
これはてすとです。[l][r]
改ページします。[p]
[cm]
改ページしました。

みたいなのを要素ごとに切り出せばいいのね?
それで・・・どうすれば。
一個一個よみこんでそれに対応した動作をすればいいのかな?
665デフォルトの名無しさん:2007/03/18(日) 02:27:00
666デフォルトの名無しさん:2007/03/18(日) 02:36:30
とりあえずあなたが寝ないうちにありがとうと言っておく。
参考にします。
667デフォルトの名無しさん:2007/03/18(日) 03:04:44
アドベンチャーゲームのスクリプト程度なら馬鹿正直に自前で構文解析を
せずに、XMLを使ったほうが楽だと思うぞ。
668デフォルトの名無しさん:2007/03/18(日) 03:05:19
てか Python でいいじゃんw
669デフォルトの名無しさん:2007/03/18(日) 06:22:32
>>664
lex yaccとか使えないへたれな俺が良くやってるのは、
[{'wait time':200,(ry

みたいに、pythonリスト&辞書で表現したい内容を全部書いておいて、
それをread&evalして必要な情報を引っ張り出すみたいなのが相当楽。
まあ、アドベンチャーのスクリプトはやったことないのでうまくいくか知らんけど
670デフォルトの名無しさん:2007/03/18(日) 11:46:41
普通にPythonの関数としてwaitだのなんだのを作っておいて、Pythonのプログラム
として実行するほうが100万倍融通が効くだろ。俺言語発明する理由が理解できん。
671デフォルトの名無しさん:2007/03/18(日) 15:03:42
ActivePython 2.5 でたよー
ttp://www.activestate.com/products/activepython/

今回はやけに時間がかかったような?
672デフォルトの名無しさん:2007/03/18(日) 15:15:55
pythonで簡単にFlashゲームの創れるライブラリとかありませんか?
673デフォルトの名無しさん:2007/03/18(日) 15:43:06
Flashでゲーム作りたいならFlashの勉強したら?
ActionScriptってJavaScriptなんだし
674デフォルトの名無しさん:2007/03/18(日) 17:35:34
そっか。
pygameの出力がswfになればいいのに。
675デフォルトの名無しさん:2007/03/18(日) 19:34:36
swfをジェネレートするライブラリは需要ありそうだな。既にあるかもしれんが。
676デフォルトの名無しさん:2007/03/18(日) 20:06:45
swf 作成

独自スクリプトでいいのなら、
swftools http://www.swftools.org/
というのがある。

Ming http://ming.sf.net/ だと python にも対応しているらしい。
677デフォルトの名無しさん:2007/03/18(日) 20:19:40
952 名前:デフォルトの名無しさん[sage] 投稿日:2007/02/15(木) 10:47:56
Flexは?

Hybridizing Java
http://www.artima.com/weblogs/viewpost.jsp?thread=193593
> Thus, you can create an application in any language you prefer,
> even a dynamic language like Python or Ruby, and use Flex to build
> a beautiful UI.

985 名前:デフォルトの名無しさん[] 投稿日:2007/02/16(金) 05:18:12
実際にFlexとTurbogearsを使ってウェブアプリのGUIを作っているデモ:
http://www.adobe.com/devnet/flex/articles/eckel_video.html

http://www.artima.com/weblogs/viewpost.jsp?thread=193593
によると、Flex使ったら綺麗なGUIがウェブアプリとデスクトップアプリ両方
でできるみたいだね。一つのツールを勉強すれば環境を無視してどこでも使える
のは魅力。



前スレから転載
web program方向になるかもだけどだけど
Open Laszloでもできるのかな?
678デフォルトの名無しさん:2007/03/19(月) 22:26:39
Python で Connection: keep-alive なブラウザ作ってる人っていませんか?
urllib, urllib2 にある機能では必要なオブジェクトが内部で完結されていたりして使えず、
httplib.HTTP をつかっても二度目のレスポンス取得(getreply)がうまくいかなかったりと期待する動作になりません。

import httplib
a = httplib.HTTP('127.0.0.1')
a.putrequest('GET', '/test1.html')
a.putheader('Connection', 'keep-alive')
a.endheaders()
errcode, errmsg, headers = a.getreply()
size = int(headers['content-length'])
page1 = a.getfile().read(size)

a.putrequest('GET', '/test2.html')
a.putheader('Connection', 'keep-alive')
a.endheaders()
errcode, errmsg, headers = a.getreply()
size = int(headers['content-length'])
page2 = a.getfile().read(size)
a.close()

print page1
print page2

上記を試すと、二度目の a.getreply() で例外が発生します。
httplib.ResponseNotReady
例外を無視して page2 = a.getfile().read(size) を実行すると、
2度目のリクエストに対するページの内容が取得できます。
(sizeが取得できていないため、test2.html が中途半端に取れたりします)

keep-alive について勘違いしてたりしますかね?
telnet で同じようにリクエストを送れば期待通りの結果になるので、間違ってはいないと思うんですが・・・
679デフォルトの名無しさん:2007/03/19(月) 23:24:20
httplib.HTTPConnection のほうを使ってみては?
680デフォルトの名無しさん:2007/03/19(月) 23:39:01
単純に
HTTP → HTTPConnection
にしてみましたが、
getreply → getresponse
のところで(2回目で)同じように ResponseNotReady が返ってきました。
も少し調べてみます。
681デフォルトの名無しさん:2007/03/20(火) 00:33:04
>>678
httplib2 をつかえば、できるようだけど?(未確認です)
682デフォルトの名無しさん:2007/03/20(火) 00:57:45
HTTPConnectionを使った新しい方法ならちゃんと取れる。
後方互換用のHTTPクラスで、しかも getfile を使った方法となると
なんか変なことを内部でやってるっぽいのでやり方がわからない。
HTTPクラス自体は HTTPConnection をラップして適当に昔のインターフェースに合わせてるだけっぽいので
ちゃんと呼び出しを律儀に見て行けばいつかはたどり着くと思う。
683デフォルトの名無しさん:2007/03/20(火) 01:47:57
>>682
すみません、urllib2がsocket閉じれない問題に遭遇してからurllib→httplibと下がっていっていろいろ混乱してました。
まだ確認してませんが頑張ってみます。
684デフォルトの名無しさん:2007/03/20(火) 02:12:24
import httplib2
headers = {
'Keep-Alive' : '300' ,
'Connection' : 'keep-alive' ,
}
h = httplib2.Http()

resp, content = h.request("http://python.org/" , headers = headers)
con = h.connections['http:python.org']
print h.connections
print con.sock.getpeername() , "<=>" , con.sock.getsockname() , len(content)
print resp['keep-alive']

resp, content = h.request("http://python.org/images/python-logo.gif", headers = headers )
con = h.connections['http:python.org']
print h.connections
print con.sock.getpeername() , "<=>" , con.sock.getsockname() , len(content)
print resp['keep-alive']
----------
{'http:python.org': <httplib.HTTPConnection instance at 0xb7da288c>}
('82.94.237.218', 80) <=> ('192.168.10.5', 42058) 12375
timeout=15, max=100
{'http:python.org': <httplib.HTTPConnection instance at 0xb7da288c>}
('82.94.237.218', 80) <=> ('192.168.10.5', 42058) 2549
timeout=15, max=99
685デフォルトの名無しさん:2007/03/20(火) 02:19:11
質問です。WindowsXPでPython2.5を使っているのですが、
リスト内の文字列などがエスケープされたまま出力されるのを抑える方法ありませんか?

対話環境でいうと
>>> print ["あ"]
['\x82\xa0']
となるところを

>>> print ["あ"]
["あ"]

としたいのです。
686デフォルトの名無しさん:2007/03/20(火) 02:27:14
encodingについて学習すると良いね
687デフォルトの名無しさん:2007/03/20(火) 02:51:32
>>685
> >>> print ["あ"]
> ['\x82\xa0']
> ↓
> >>> print ["あ"]
> ["あ"]

これは直せない、for文などでリストの内容を1つずつprintするしかない、
と「みんPy」には書いてあった。
http://www.amazon.co.jp/dp/479733665X
688デフォルトの名無しさん:2007/03/20(火) 03:28:49
>>685
標準の Python では無理。

ちょっと古いけど以下のバージョンだと可能らしい(俺は試したことない)。
http://www.python.jp/Zope/download/pythonjpdist
> ShiftJIS文字列対応
689デフォルトの名無しさん:2007/03/20(火) 04:09:58
>>678
一般論:
HTTP/1.1 では keep-alive がデフォルト。
Connection: ヘッダに close を指定しなければ永続コネクションが張られる。

Python 固有の話:
httplib.HTTPConnection は永続コネクションを張ってくれるっぽい。
http://docs.python.org/lib/httplib-examples.html
の要領で単純にリクエスト送信とレスポンス受信を繰り返すと
ちゃんと同じコネクションが再利用される模様。
690デフォルトの名無しさん:2007/03/20(火) 18:36:33
バイナリデータを覗きたい時にすごーく昔書いた
16進ダンプがこんななんですけど、もっとカッコイイ方法ってありますか?

def dumphex(s):
bytes = map(lambda x: '%.2x' % x, map(ord, s))
for i in xrange(0,len(bytes)/16):
print ' %s' % string.join(bytes[i*16:(i+1)*16],' ')
print ' %s' % string.join(bytes[(i+1)*16:],' ')
691デフォルトの名無しさん:2007/03/20(火) 18:50:19
動けばイイんじゃねーの?と思いつつ。

def dumphex(s, format='%02x'): 
    for i in xrange(0, len(s), 16): 
        print ' '.join(format % ord(c) for c in s[i:i+16])
692デフォルトの名無しさん:2007/03/20(火) 19:59:25
いきなり答えっぽいのが出てつまんねーな、と思いつつ。

def dumphex(s, format='%02X'):
  for n, c in enumerate(s):
    print format % ord(c), (n%16==15)*'\n',
693691:2007/03/20(火) 20:08:36
短くしてやった。
動けば何でもよかった。
今は反省している。
694デフォルトの名無しさん:2007/03/20(火) 23:02:52
def dumphex(s):
  l = list(s.encode("hex-codec"))
  m = map( lambda x: l[x]+l[x+1] , xrange(0,len(l),2))
  for x in map( lambda x: m[x:x+16] , xrange( 0, len(m) , 16 )):
    print string.join( x , " " )


695デフォルトの名無しさん:2007/03/21(水) 00:06:48
>>689
ありがとうございます。確認できました。サンプルがHelpにあったとは・・・
696デフォルトの名無しさん:2007/03/21(水) 06:48:35
a.decode('Shift_JIS', 'ignore') と a = codecs.decode(a, 'Shift_JIS', 'ignore')
の違いってどの辺にあるのでしょうか?
697デフォルトの名無しさん:2007/03/21(水) 10:42:42
>>690-690
この hexdump って 周期的に 湧くなぁ(^^;
でもって 漏れは binascii.b2a_hex(), binascii.hexlify() に一票!
698デフォルトの名無しさん:2007/03/21(水) 11:58:07
16ごとに切れないんだけど・・・↑
699デフォルトの名無しさん:2007/03/21(水) 13:09:21
↓の結果は、
class A(object):
def __init__(self, fields=[]):
self.fields = fields
print "A:", self.fields

class B(A):
def __init__(self):
A.__init__(self)
self.fields.append("A")
print "B:", self.fields

b = B()
b = B()

↓になると思ったのですが、実際は
A: []
B: ['A']
A: []
B: ['A']

↓になります。
A: []
B: ['A']
A: ['A']
B: ['A', 'A']

これは正しい動作なのでしょうか??
700デフォルトの名無しさん:2007/03/21(水) 13:23:38
デフォルト引数は一回しか評価されません、
immutableでないものをデフォルト引数に指定して、内容を変更すると
それ以降は変更した内容がデフォルト引数であるかのように動作します。

http://www.python.jp/doc/release/tut/node6.html
701デフォルトの名無しさん:2007/03/21(水) 13:57:39
>>700
ありがとうございました。デフォルト引数を使用する際は、
注意したいと思います。
702デフォルトの名無しさん:2007/03/22(木) 01:48:54
>>699
顔文字みたいでかわいい
703デフォルトの名無しさん:2007/03/22(木) 02:27:42
perl の Devel::Trace みたいに、起動してから終了するまでを
全部トレースできる方法教えてください。
704デフォルトの名無しさん:2007/03/22(木) 03:04:57
つまり L=[:] とか使えばいいわけだな
705デフォルトの名無しさん:2007/03/22(木) 08:25:57
pdb.set_trace()
じゃインタラクティブデバッガだな。まぁ普通はこっちのほうが楽だが。
706デフォルトの名無しさん:2007/03/22(木) 12:11:41
perlのように
x['A']['B']='C'
x['A']['D']='E'
という辞書の辞書をいきなり書くことは出来ないのでしょうか
上記の例だと
x={}
x['A']={}
と二回初期化(?)をすれば可能なのは分かりましたが、keyを持たなければ
そのkeyで初期化、というコードが分かりづらいので、一度に書ければ分かり
やすいのですが。
707デフォルトの名無しさん:2007/03/22(木) 12:21:58
これじゃダメなん? >>706

>>> x = {'A':{'B':'C', 'D':'E'}}
>>> x
{'A': {'B': 'C', 'D': 'E'}}
>>> x['A']['B']
'C'
>>> x['A']['D']
'E'
708デフォルトの名無しさん:2007/03/22(木) 12:25:22
> keyを持たなければそのkeyで初期化

そのための setdefault というメソッドがあるんで、それを使えば

x={}
x.setdefault('A', {})['B'] = 'C'

とできる(最初の初期化は必要だけど)。
分かりやすさは・・・いまひとつかも。
709デフォルトの名無しさん:2007/03/22(木) 12:52:00
>>706
Pythonの辞書型はタプルもキーにとれるから、x['A', 'B'] = 'C'といった感じで書けるよ。
710706:2007/03/22(木) 13:05:03
>>707-708

実際は
A,B,C
A,D,E
・・・
というファイルがあって、これを読み込みたいんです。
keyが’A'だけとか固定ならいいんですけどいろいろ変わりますし。

python 辞書の辞書でぐぐっても無いのは、perlのコードをそのまま
持ってくるのが変なのかと思ったのですが、pythonらしいコードが
他にあるんでしょうか。

711デフォルトの名無しさん:2007/03/22(木) 13:07:42
>>709
これ、いいね。
712デフォルトの名無しさん:2007/03/22(木) 13:21:56
>>710
ファイルを読んでなにをするの?
Aから始まる行の総数を集計するとか?
713デフォルトの名無しさん:2007/03/22(木) 13:32:17
hexdump の方法をいろいろアドバイスありがとうございます

すみません、次なる質問なんですが
バイナリデータの中に3byte (24bit)のカウンタというか測定値が
埋まっていることが分かりました。
2byte, 4byte なら struct.unpack でこんな感じ:
struct.unpack('>I', somechararray[172:176])[0]
でいけるみたいですね。でも24bit 分を抜き出すってのが出来ません...

32bit で読み出して & 0x00ffffff するのが正解ですか?
714706:2007/03/22(木) 13:43:22
>>709

あ、すごい簡単に書けるんですね。
ちょと感動


>>712
DBから吐き出したCSVを読み込みたいんです。
715デフォルトの名無しさん:2007/03/22(木) 14:44:34
>>713
きっちり3byteしか入ってないのに4byte読んだら、ゴミが入るでしょう。
struct.unpack()でパースしたいなら、
3byte読んで、ヌルバイトを頭かケツにくっつければよい。

データはビッグエンディアンのようだから、
struct.unpack('>I', somechararray[172:175].insert(0,chr(0)))[0]
のような感じで良いのでは。
716デフォルトの名無しさん:2007/03/22(木) 14:49:34
4バイト読んでマスクしたほうが速いんじゃないかな
717715:2007/03/22(木) 14:54:24
考えてみればどうせマスクするんならゴミを読んでもおkだよな
スマソ
718713:2007/03/22(木) 15:34:36
>715-717
thx

やっぱり C な感覚(?)で mask しる! でいいんですね。

もとが 4byte なく本当に 3byt しかないときは
>715 のようなやり方がつかえるってことですね。
719デフォルトの名無しさん:2007/03/23(金) 06:57:58
>>705
ありがとうございました。
720デフォルトの名無しさん:2007/03/24(土) 09:47:32
くだらない質問ですみませんが、
pythonのどこらへんが Monty Python Flying Circus から由来している
みたいなトリビアがあったら教えてください。
721デフォルトの名無しさん:2007/03/24(土) 11:00:09
FAQ嫁
http://python.rdy.jp/ に訳もあるお
722デフォルトの名無しさん:2007/03/24(土) 22:06:10
FAQに書いてある内容が全てなのかな。実はこのパッケージ名/関数名/変数名は
このシリーズに由来してる、とかそういうのあるかなと思ったのですが :-p

http://python.rdy.jp/

↑ いいサイトだな。ありがと。
723デフォルトの名無しさん:2007/03/24(土) 23:09:48
↓読んで使ってみたけど PyScripter いい感じ。便利だし軽いし。結構使ってる人いるのかな?
http://python.matrix.jp/apps/pyscripter.html

DelphiのIDEも好きなんだけど、操作性がかなり近くていいわー。
724デフォルトの名無しさん:2007/03/25(日) 00:02:29
windowsでcryptモジュールと同様のことがしたいときはどうすればいいのでしょうか?
725デフォルトの名無しさん:2007/03/25(日) 00:09:19
>>724
cygwinを使う
726デフォルトの名無しさん:2007/03/25(日) 00:19:21
>>724
喜べ。perlのソースがあったぞ。
後は移植するだけだな。

鳥屋寝た。: Perlで書き下ろしたDESおよびCRYPT(3)の動作がよくわかるサンプルコード
http://72.14.235.104/search?q=cache:mASE5cF5XP4J:user64.psychedance.com/2004/11/sample_des_cryp.html
727デフォルトの名無しさん:2007/03/25(日) 00:20:21
ttp://www.amazon.co.jp/dp/479733939X/

IronPythonの本、表紙画像がでてるな.
728デフォルトの名無しさん:2007/03/25(日) 00:26:32
無駄にかっけえw
729デフォルトの名無しさん:2007/03/25(日) 00:45:06
駄本には駄本なりの表紙。
良本には良本なりの表紙。
730デフォルトの名無しさん:2007/03/25(日) 01:21:06
おっPython
731デフォルトの名無しさん:2007/03/25(日) 01:37:54
>>725-726
ありがとうございます

>>726
が、がんばります・・・!
732デフォルトの名無しさん:2007/03/25(日) 09:33:57
>>722

CheeseShopはMontyPythonのとあるスケッチ由来だね。

http://cheeseshop.python.org/pypi
733デフォルトの名無しさん:2007/03/25(日) 11:40:28
>>731
ネタはともかく
pycryptoがあればたいがいなんとかなる
734デフォルトの名無しさん:2007/03/25(日) 16:57:34
ttp://www.void.in/wiki/LemonGrass

これローカルで動かして遊んでみたいけど、どうやって
動かせばいいかわからない orz
735デフォルトの名無しさん:2007/03/25(日) 17:00:53
みんな、IronPythonの何にそんなに期待してるの?
どういうメリットがあんの?
736734:2007/03/25(日) 17:07:58
環境は、WinXP、Python 2.4.4: C:\Python24\python.exe

ImportError: No module named fcntl
  args = ('No module named fcntl',)
というエラーが出てうまくいきませんでした
737デフォルトの名無しさん:2007/03/25(日) 17:15:15
>>736 >>734
http://www.python.jp/doc/2.4/lib/module-fcntl.html
Unixプラットフォームで利用できます。

というわけでWindowsではムリ。
738デフォルトの名無しさん:2007/03/25(日) 17:15:54
pykfってもう公開してくれないの?
739デフォルトの名無しさん:2007/03/26(月) 08:27:55
PythonでProce55ingみたいな事が出来る方法、拡張とかってありますかね?

セルオートマトンやL-Systemを描画するための描画ライブラリーであったり、
3Dのモーショングラフィックみたいなのを表示するための描画ライブラリーであったり、
動画を読み込んでエフェクトかけて動画ファイルに書き出したりとか。

Javaより動作が遅いのであまり現実的じゃないんでしょうか?
740デフォルトの名無しさん:2007/03/26(月) 11:27:07
Python web development and frameworks in 2007
http://jesusphreak.infogami.com/blog/vrp1
741デフォルトの名無しさん:2007/03/26(月) 22:05:03
>>739
グラフィックス系の処理はできるけど、
グラフィックス系のらくちんなライブラリはProce55ingほどたくさんはないと思うよ。
処理速度的な話なら、PurePythonなライブラリでもない限り問題ない。
pygame系でいろいろあさってみてはどうだろう。
あとはJythonからJava系のライブラリを使うとか。
742デフォルトの名無しさん:2007/03/27(火) 08:32:17
pythonて、有償ソフトに組み込んでも大丈夫なの?
出荷した後で「ソース公開しる!!」とか言われない?
743デフォルトの名無しさん:2007/03/27(火) 09:23:50
Python自体はオッケー。
サードパーティーモジュールのライセンスには気をつける必要あり。

>出荷した後で「ソース公開しる!!」とか言われない?

とはいえ、配布するスクリプトは言われるまでもなく公開状態とほぼ同じになるわけだが。
744デフォルトの名無しさん:2007/03/27(火) 09:48:31
>>734
ありがとう

ということは、標準配布されてるモジュールしか使わないなら問題ないわけか。
スクリプトも、自前で簡易暗号化したファイルを持っておいて、
メモリ上に展開してCから直接Python呼び出すようにすれば
ナマのスクリプトファイル入れなくても大丈夫ってことね

会社で「専用スクリプトつくれ」とか言われたんだけど
仕様を聞くとどう考えても自前で作るよりフリーのスクリプトを
組み込んだ方が高性能かつ速そうなので。

早速オライリー買って来て研究してみまつ。
745デフォルトの名無しさん:2007/03/27(火) 13:58:39
クールからホットへ,2007年のPythonコミュニティ
ttp://gihyo.jp/magazine/SD/serial/2007/2007oss/0013
746デフォルトの名無しさん:2007/03/27(火) 15:36:22
この人、Python歴6年だったのか
747デフォルトの名無しさん:2007/03/27(火) 16:17:52
Zope臭が。
748デフォルトの名無しさん:2007/03/27(火) 18:07:19
ちょっと前にエロゲにpythonが組み込まれてた疑惑がなかったけ
749デフォルトの名無しさん:2007/03/27(火) 18:09:08
それなんてエロゲ?
750デフォルトの名無しさん:2007/03/27(火) 18:12:50
Python歴40年の俺にはかなうまい
751デフォルトの名無しさん:2007/03/27(火) 18:14:13
俺も股間でPythonを飼い出してから30年近くになるぜ
752デフォルトの名無しさん:2007/03/27(火) 18:46:00
>>743 とはいえ、配布するスクリプトは言われるまでもなく公開状態とほぼ同じになるわけだが。

py ファイルではなく pyc ファイルを配布すればいいだろうが。
753デフォルトの名無しさん:2007/03/27(火) 18:59:38
つ dis.disassemble
754デフォルトの名無しさん:2007/03/27(火) 19:42:00
専用スクリプトなんて、どういう場面でどういうメリットがあるんだろう・・・
755デフォルトの名無しさん:2007/03/27(火) 20:03:34
組み込みならLuaのほうが向いてると思うけど。
756デフォルトの名無しさん:2007/03/27(火) 20:33:30
>755

それ、よく聞くけど、何故?
本体が小さいから?
757デフォルトの名無しさん:2007/03/27(火) 21:41:26
>>748-749
まだ覚えていたのかw

中身といえば(当然だが)pycになってる。
758デフォルトの名無しさん:2007/03/27(火) 22:58:35
どうして首がないんだろう。
759デフォルトの名無しさん:2007/03/27(火) 23:30:25
>>752
はりきって配布してくれ(www
760デフォルトの名無しさん:2007/03/27(火) 23:39:29
.pyoじゃねぇの? と重箱
761デフォルトの名無しさん:2007/03/27(火) 23:50:18
ぴょ?
762デフォルトの名無しさん:2007/03/28(水) 02:05:24
リバースエンジニアリングを防ぐ最良の方法は、リバースエンジニアリングしたくなる
ほど凄いものは作らないように気をつけることだよな。
763デフォルトの名無しさん:2007/03/28(水) 03:58:59
まぁ、雇われの身ならリバースエンジニアリングされますたっつーても
給料が下がるわけじゃないだろうが。
764デフォルトの名無しさん:2007/03/28(水) 08:53:46
>>763
雇われてからそういうことを言えよ、な。
765デフォルトの名無しさん:2007/03/28(水) 09:32:36
>>763
そういう態度じゃ一生ニート.
766デフォルトの名無しさん:2007/03/28(水) 09:39:01
一生ニートでいられるなんてうらやましい
767デフォルトの名無しさん:2007/03/28(水) 09:40:45
まあ、享年20何歳とかでも一生は一生だしな
768デフォルトの名無しさん:2007/03/28(水) 10:13:33
殺すなよ(ww
769デフォルトの名無しさん:2007/03/28(水) 11:17:07
そうか俺はニートだったのか。
知らなんだ。気づかせてくれてありがとうw

770デフォルトの名無しさん:2007/03/28(水) 12:11:13
勤め人でも心はニート。

一般的には社内ヒキコモリとか呼ばれるのかな?
771デフォルトの名無しさん:2007/03/28(水) 12:41:47
たとえどんなに稼いでしまっても、ニートの心を忘れずに生きていきたいものですね
772デフォルトの名無しさん:2007/03/28(水) 13:48:33
心がニートで人生楽しいかなあ...??

Pythonで言うとモジュールをインポートしないでコードを書くかんじか(www
773デフォルトの名無しさん:2007/03/28(水) 14:23:48
ちがうよ、コードを書かずにモジュールだけもらう。
774デフォルトの名無しさん:2007/03/28(水) 14:50:19
windowsでマウス操作に関する自動化したいのですが
pythonでもできるのでしょうか?

例えば

パワーポイントの4ページ目の中央にjpg画像を貼る

というようなことができればいいのですが
775デフォルトの名無しさん:2007/03/28(水) 15:07:46
あいあんぱいそん?
776デフォルトの名無しさん:2007/03/28(水) 15:12:49
あいあむぱいそん(゚∀゚)
777デフォルトの名無しさん:2007/03/28(水) 15:15:03
>>774
COMインタフェイス使えるから余裕で可能。
778デフォルトの名無しさん:2007/03/28(水) 15:18:32
>>777
中央からちょっとずらして貼るとかもできるのですか?
だったらロケットマウスから乗り換えます
779デフォルトの名無しさん:2007/03/28(水) 15:19:21
>>773
壮大なプロジェクトを夢想しているけど、
実際は毎日
import this
してるだけ何でしょ
780デフォルトの名無しさん:2007/03/28(水) 15:49:49
from __future__ import VeryBigDream
もしてる
781デフォルトの名無しさん:2007/03/28(水) 16:10:51
>>778
COM インタフェースを使う場合は、マウスを動かすのではなく
PowerPoint を直接制御することになると思われ。
782デフォルトの名無しさん:2007/03/28(水) 16:39:17
毎日from __future__ import bracesして鬱になっている俺が来ましたよ。
783デフォルトの名無しさん:2007/03/28(水) 18:32:26
>>782
マゾ?
784デフォルトの名無しさん:2007/03/28(水) 19:08:57
なんか変わるの?
785デフォルトの名無しさん:2007/03/28(水) 20:42:59
>>780
File "<stdin>", line 1
SyntaxError: future feature VeryBigDream is not defined

まず、VeryBigDreamを定義するところから始めた方がよいらしい
786デフォルトの名無しさん:2007/03/28(水) 21:15:37
>>784
SyntaxError: not a chance
787デフォルトの名無しさん:2007/03/28(水) 22:25:34
>786

RuntimeError: too late

788デフォルトの名無しさん:2007/03/28(水) 22:52:39
おまえら Traceback すら無しか
789デフォルトの名無しさん:2007/03/28(水) 23:55:06
>>771
Pythonで稼いだら寄付しる。

ttp://www.python.org/psf/donations/
790デフォルトの名無しさん:2007/03/29(木) 01:46:25
>>778
774じゃないが、可能だと思うぞ。たぶん想像しているもとは違うと思うが。

とりあえず Excel でシンボルに対応する画像を隣のセルに貼り付ける、といったことはやったことがある。
複数シートに数百個分の画像。同じような容量で Word でもできるはず。

python win32com
とかで検索汁

書籍はこっちで
http://www.amazon.co.jp/Python-Programming-Win-Mark-Hammond/dp/1565926218/ref=sr_1_1/249-4332103-7731501?ie=UTF8&s=english-books&qid=1175100348&sr=8-1
791デフォルトの名無しさん:2007/03/29(木) 04:36:53
5種類以上のクラスを使うような規模ではクラスごとにソースファイルを分割する
方針でやってるんだけど、お前らはどうですか。

でもインスタンシエイトする文が冗長になってくやしいっ
792デフォルトの名無しさん:2007/03/29(木) 04:56:15
なんで冗長になるのよ
793デフォルトの名無しさん:2007/03/29(木) 05:20:36
ああ、hageClass.pyってファイル名なら
from hageClass import hageClass
ってやれば
hage = hageClass()
でいいのか。
今まで
hage = hageClass.hageClass()
と律儀にやってた。

頭沸いてるな、寝るわ。
794デフォルトの名無しさん:2007/03/29(木) 08:00:30
まず早寝早起きから始めようよな。
ビッグドリームを夢見るのはそれからだ。
795デフォルトの名無しさん:2007/03/29(木) 09:03:06
自分ならクラス分割するとき冗長になるような名前付けはせず、
モジュール名込みで初めて意味が通るような名前付けをする。
そうすると修飾が野暮ったく見えなくなって気分がいい。

import 機能名
x = 機能名.具象クラス名()

ie) filedb.Database, bbspost.Dialog

まあ場合にもよるけど、ほとんどの場合はこう命名できる。
796デフォルトの名無しさん:2007/03/29(木) 15:10:53
>>795が正論。逆に言うとこの規則に従うなら「5種類以上のクラスなら分ける」などと
いうことに拘らないほうがいい。
797デフォルトの名無しさん:2007/03/29(木) 18:42:59
仕事じゃJava漬けだから、Pythonでもついファイル名を具象クラス名にしちゃうんだよね……
798デフォルトの名無しさん:2007/03/29(木) 21:32:34
そこでJythonですよ
799デフォルトの名無しさん:2007/03/29(木) 21:51:47
pythonからJavaに戻ると、1ファイル1(public)クラスの制約がうっとーしくてしょうがない。
あれはIDEに頼りたくなる気持ちもわかる。
800デフォルトの名無しさん:2007/03/29(木) 22:22:56
そこで C# ですよw
801デフォルトの名無しさん:2007/03/29(木) 23:43:52
モジュール分割ってガイドラインとか無いよね?
どこでひとつのモジュールに区切っていいのか相当悩む場合がある・・・
802デフォルトの名無しさん:2007/03/30(金) 00:54:50
ガイドライン: 他の奴のことも考えてくれ

Carbon.Xxx うざすぎ。

803デフォルトの名無しさん:2007/03/31(土) 01:09:48
いくつかのコードのベンチマークをとりたいのですが、
perlのBenchmarkモジュールみたいなものってないでしょうか?

ググッたところpybenchというのを見つけたのですが、これってpython自体のベンチマークソフト
という認識でいいでしょうか?
804デフォルトの名無しさん:2007/03/31(土) 04:46:37
>803
Python2.4 チュートリアル10.10
Python2.4 ライブラリリファレンス10章
805デフォルトの名無しさん:2007/03/31(土) 07:11:29
hotshotの使い方

def main():
    func()

def profile(fname='test.Prof',mode=True):
        import hotshot
        if mode:
            prof=hotshot.Profile(fname)
            prof.run('main()')
            prof.close
        else:
            import hotshot.stats
            stats=hotshot.stats.load(fname)
            stats.strip_dirs()
            stats.sort_stats('cumulative')
            stats.print_stats(80)

debianでは、ライセンスの関係で、profilerがついてこないので注意が必要です。
806デフォルトの名無しさん:2007/03/31(土) 09:50:52
from threading import Thread

ImportError: cannot import name Thread
となるのですが何がいけないのでしょうか?
IDLEでだと問題ないのですが・・・
807デフォルトの名無しさん:2007/03/31(土) 11:01:59
>>804
ありがとん。
808デフォルトの名無しさん:2007/03/31(土) 11:32:58
threadのないpythonを使っているとか?>806
809デフォルトの名無しさん:2007/03/31(土) 11:43:55
IDLEでいけてるなら違うんじゃね?
810デフォルトの名無しさん:2007/03/31(土) 12:08:51
806の頭がおかしいんだよ。
811デフォルトの名無しさん:2007/03/31(土) 12:09:25
それだな
812デフォルトの名無しさん:2007/03/31(土) 14:44:29
カレントディレクトリに独自の threading.py があるんじゃない?
813デフォルトの名無しさん:2007/03/31(土) 15:18:52
>>806
import threading にして threading.Thread で試してみたら?
それでダメなら dir(threading) を表示して、Thread があるか確認してみるとか。
814デフォルトの名無しさん:2007/03/31(土) 15:59:04
813の頭もおかしいらしい。
815デフォルトの名無しさん:2007/03/31(土) 16:15:53
IDLEとコマンドラインで別のpythonを参照してるなんて可能性も‥‥‥
816デフォルトの名無しさん:2007/03/31(土) 19:50:37
近くに潜んでいるディオが時止めで錯覚を起こさせてるかもしれない。
耳をすませてみて「ムダムダ」とか「ウリー」とか聞こえたらその可能性が高い
817デフォルトの名無しさん:2007/03/31(土) 23:18:06
expecto Patronum:
  raise
818デフォルトの名無しさん:2007/03/31(土) 23:29:28
皆様レスありがとうございます

>>812
それでした
むしろスクリプト自体がthreading.pyでした

ボケてました、馬鹿です、春です、申し訳ありませんでした
819デフォルトの名無しさん:2007/03/31(土) 23:33:53
マヌケがァ〜〜〜!
820デフォルトの名無しさん:2007/03/31(土) 23:50:26
Rubyの方が向いていると思うよ。
821デフォルトの名無しさん:2007/03/31(土) 23:56:51
Perl7の方がいいんじゃねえかなぁ
822デフォルトの名無しさん:2007/04/01(日) 00:05:13
マヌケだけどありがち
823デフォルトの名無しさん:2007/04/01(日) 02:36:12
PyXMLでWebから取得したXMLをパースしようとした所(PyXML-0.8.4/demo/sax/saxtrace.pyを使ってます)
半角アンド(&)部分でfatalErrorとなりそれ以上パースしてくれません。
半角アンド(&)を正しく読み込ませる方法などありませんでしょうか。
824デフォルトの名無しさん:2007/04/01(日) 03:43:38
ヤスパース
825デフォルトの名無しさん:2007/04/01(日) 16:33:03
どこかで面白いエイプリルフールやってませんか?
826デフォルトの名無しさん:2007/04/01(日) 21:09:09
827デフォルトの名無しさん:2007/04/01(日) 21:10:27
つまらない
828デフォルトの名無しさん:2007/04/01(日) 21:21:05
829デフォルトの名無しさん:2007/04/01(日) 21:28:36
早速割り箸買ってくる!
830デフォルトの名無しさん:2007/04/01(日) 21:34:35
粉糖と重曹も忘れるなよ
831デフォルトの名無しさん:2007/04/01(日) 21:35:08
でりぽは普段からネタっぽさ全開だからなw

コンビニわりばしがえらいたまってる俺にはかんけいないぜ

……で、重曹はどこに売ってるんだろう
832デフォルトの名無しさん:2007/04/01(日) 21:46:23
おまえら重曹を買うときは食品グレードのものにしろよ。掃除用を食うのは不衛生だぞ。
833デフォルトの名無しさん:2007/04/01(日) 23:07:17
去年の大掃除に重曹使った。換気扇の油よごれもよく落ちたよ。
何より手あれほとんどしないっていうのがいいね。


ていうかここはいつからライオンのお掃除スレに
834デフォルトの名無しさん:2007/04/02(月) 12:19:49
掃除は大切だろ。掃除や洗濯にこだわりのない奴はろくなプログラム書けない。
835デフォルトの名無しさん:2007/04/02(月) 13:06:17
早速掃除してくる!
836デフォルトの名無しさん:2007/04/02(月) 13:10:05
きれい好きで発想力の無いヤツと
掃除洗濯はずぼらだけど発想力のないヤツを比べると
後者の方がプログラマとして優秀だよな

ただのきれい好きは置換可能だけど
発想力のあるヤツはそういないので、置換不可能だし
837デフォルトの名無しさん:2007/04/02(月) 13:15:10
屁理屈こねてる暇があったらさっさと掃除しろ、布団干せ>836
838デフォルトの名無しさん:2007/04/02(月) 13:19:05
>>836
ちょっっ、どっちも発想力ないならきれい好きがいいだろ
839デフォルトの名無しさん:2007/04/02(月) 13:34:16
ごめん、マジで間違えた...orz...
要はきれい好きかどうかより発想力があるかないかのほうが貴重な能力だ
ということを言いたかっただけだ
840642:2007/04/02(月) 13:46:01
前回はエンコードの問題でお世話になりました。みなさまありがとうございます。
今回もエンコードに関する質問です。URIのエスケープ文字(空白が%20とかの)をデコードするためurllibのunquote()関数を使用しました。
ところがどうやらこの関数で返される文字列はデフォルトで日本語のエンコードのcp932にされてしまうようなのです。
中国語のエンコードであるgbkでデコードされた文字列を返すにはどうしたらいいのでしょうか?
841642:2007/04/02(月) 13:46:46
すみません・・・ageてしまった・・・
842デフォルトの名無しさん:2007/04/02(月) 13:57:38
発想力だけで書いたスパゲッティソースなんて誰も見たくないし
バグが出たら本人でも触れないようなのは、プログラムでもなんでもない。
単なる文字の羅列だ。
部屋を片付ける時間をソースの整理に当ててるなら判るが、そんなやつはもともと散らかさない。
843デフォルトの名無しさん:2007/04/02(月) 14:19:13
と,綺麗好きだけが取り柄の842が言っています.
844デフォルトの名無しさん:2007/04/02(月) 14:26:52
馬鹿以外全員がうなずくところに噛み付くのって
ある意味玉砕だよなぁ。
845デフォルトの名無しさん:2007/04/02(月) 14:49:57
うんうん。そうだね。
846デフォルトの名無しさん:2007/04/02(月) 14:55:04
>>840
unquoteはquoteされた7bit文字列を元のバイナリに戻すだけだ。
文字コードは関係ない。

>>> u"あ".encode("cp932")
'\x82\xA0'
>>> quote(u"あ".encode("cp932"))
'%82%A0'
>>> quote(u"あ".encode("euc-jp"))
'%A4%A2'
>>> quote(u"あ".encode("utf-8"))
'%E3%81%82'
>>> unquote(quote(u"あ".encode("cp932")))
'\x82\xA0'

unquoteしてcp932の文字列が出てきたと言うなら、それは元々cp932だったということ。
847デフォルトの名無しさん:2007/04/02(月) 15:05:33
>>842
詭弁の代表例
極端すぎる例を持ち出すな
掃除とか整理整頓以前に
人間力を磨いた方がいいと思うぞ
848デフォルトの名無しさん:2007/04/02(月) 15:28:38
人間力(笑)
849デフォルトの名無しさん:2007/04/02(月) 15:35:41
(笑)(笑)
850デフォルトの名無しさん:2007/04/02(月) 15:37:00
SEってこういう話好きだよな
851デフォルトの名無しさん:2007/04/02(月) 15:38:26
超がつくほど綺麗好き
ほんとは異常な潔癖性
他人を馬鹿呼ばわり
発想力がないとたしなめられる毎日
心に秘めるビッグドリーム

※間奏
852デフォルトの名無しさん:2007/04/02(月) 15:46:02
>>839
その結論は当然だろうが、掃除の話をしてるのに唐突に発想力の話を持ち出すところに
君の掃除能力に対する劣等感が見られて興味深い。
発想力と掃除能力が負の相関を持っていることを示せば多少説得力のある議論になる
ので、今後の精進に期待したところである。
853デフォルトの名無しさん:2007/04/02(月) 15:47:53
人間力(笑)
854デフォルトの名無しさん:2007/04/02(月) 16:00:08
で、掃除の能力とプログラミングってどんな関係があるの?
855デフォルトの名無しさん:2007/04/02(月) 16:02:00
>>852
「発想力」という言葉が君にとって劣等感をくすぐる言葉であるということがよく分かったよ.
856デフォルトの名無しさん:2007/04/02(月) 16:03:52
リファレンスカウント法の是非が問われているのだよ
857642:2007/04/02(月) 16:03:55
>>846
ありがとうございます、少しだけ理解が深まりました。
現在扱っているデータが下のように、unicode()関数を使わなければ文字化けする部分とquoteされた7bit文字列のままで十分な部分が混在しているのですが、そのような場合はどうやって文字化けを解消すればよいのでしょうか?

>>> print urllib.unquote("%E8%AE%B8%E5%B7%8D") #文字化けせず
许巍
>>> print urllib.unquote("%d5%c5%f6%a6%d3%b1")    #文字化け
ユナモア
>>> print unicode(urllib.unquote("%d5%c5%f6%a6%d3%b1"),"gbk") #文字列は上と同じ。文字化けせず
张靓颖

あとunicode()を使った場合type()でみると<type 'unicode'>となり、<type 'str'>とはなりません。これら二つは排他的な関係にあるのでしょうか?
私自身がどこかで根本的な勘違いをしていることは理解できるのですが、その点についても教えていただければ幸いです。
858デフォルトの名無しさん:2007/04/02(月) 16:05:10
>>855
ぐだぐだ言ってないでさっさと掃除しなさい
859デフォルトの名無しさん:2007/04/02(月) 16:07:50
>>857
えっと、簡単に言うと print が元凶
860デフォルトの名無しさん:2007/04/02(月) 16:11:29
真の勝者は普段から散らかさない努力をするものだ

故に掃除掃除と言っている奴は敗者である
おまけに発想力もないならプログラマとしてまったくもって見込みがない
861デフォルトの名無しさん:2007/04/02(月) 16:18:40
そこまで粘着するなら、まず発想力というものをきちんと定義してくれ
862デフォルトの名無しさん:2007/04/02(月) 16:22:40
>>861
ぐだぐだ言ってないでさっさと掃除しなさい。
863デフォルトの名無しさん:2007/04/02(月) 16:26:17
>861
>そこまで粘着するなら

ニヤニヤ
864デフォルトの名無しさん:2007/04/02(月) 16:31:53
>>857
strをかえす関数が用意さてています。:)
865デフォルトの名無しさん:2007/04/02(月) 16:32:49
発想力 vs 掃除力 のスレでも立ててそっちでやってくれ。
正直どちらも興味ない。w
866デフォルトの名無しさん:2007/04/02(月) 17:45:14
>>859, >>864
ありがとうございます。とりあえずPythonの宿題スレで丸投げてきました。
みなさまのコードを見ながら勉強の参考にさせてもらおうと思います。

また問題ができましたら質問することになるかもしれません、そのときはまたよろしくお願いします。
867デフォルトの名無しさん:2007/04/02(月) 17:59:38
うわはははははははは、
 
  
 

 
 
すごい根性
868デフォルトの名無しさん:2007/04/02(月) 22:24:16
>>865
人間力の一人負けでいいだろ
869デフォルトの名無しさん:2007/04/02(月) 22:30:43
だれかコイツを掃除してください。
870デフォルトの名無しさん:2007/04/02(月) 22:37:40
  ┌┴┴┴┴┴┴┴┴┴┐
  |             |
  |  ●     ●   |
(○┘  ______  └○)
  |  ______  |      _______________
 /__________\   /
||  |  |  |  |  ||<おでかけですか〜♪ レレレのレ!
||   └―┘  └―┘  ||  \
 \\    ┌―┐    //      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   \\   |  |  //   ( 〇)
     \ ̄ ̄ ̄ ̄ ̄ ̄/  ∩ ||
     `――┐┌―-′  /└┴┴つ
       / ̄ ̄ ̄ ̄/――(    ∫
       |     / ̄| ̄\__)
  /⌒\/___ノ |_/    ||
 /λ   \ __∠       ||
/ )\         ̄\    λλλ
(/  |           )   \_ノ
    \______/   / |
            /∠_   /   |
           (__)  ノノ人人
871デフォルトの名無しさん:2007/04/02(月) 22:40:57
おまえは、はき散らかしてるだけだろ
872デフォルトの名無しさん:2007/04/02(月) 22:44:31
  ┌┴┴┴┴┴┴┴┴┴┐
  | お掃除大好き   |
  |  ●     ●   |
(○┘  ______  └○)
  |  ______  |      _______________
 /__________\   /
||  |  |  |  |  ||< 消毒消毒、清潔第一!!
||   └―┘  └―┘  ||  \
 \\    ┌―┐    //      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   \\   |  |  //   ( 〇)
     \ ̄ ̄ ̄ ̄ ̄ ̄/  ∩ ||
     `――┐┌―-′  /└┴┴つ
       / ̄ ̄ ̄ ̄/――(    ∫
       |     / ̄| ̄\__)
  /⌒\/___ノ |_/    ||
 /λ   \ __∠       ||
/ )\         ̄\    λλλ
(/  |           )   \_ノ
    \______/   / |
            /∠_   /   |
           (__)  ノノ人人
873デフォルトの名無しさん:2007/04/02(月) 23:34:02
汚物は
874デフォルトの名無しさん:2007/04/03(火) 00:31:40
はいはい、消毒だー
875デフォルトの名無しさん:2007/04/03(火) 01:34:43
a=1.2
a=1.2+1.0000000000000000
ってやるとaが
2.2000000000000002
になって困ってます
どうやったら解決しますか?
876デフォルトの名無しさん:2007/04/03(火) 01:39:54
>>> from decimal import Decimal
>>> Decimal('1.2') + Decimal('1.0000000000000000')
Decimal("2.2000000000000000")
877デフォルトの名無しさん:2007/04/03(火) 02:10:52
>>875
まず掃除をしろ。
話はそれからだ。
878デフォルトの名無しさん:2007/04/03(火) 02:17:09
ありがとうございます
879デフォルトの名無しさん:2007/04/03(火) 08:02:41
ほんとにぱいそん信者は使えないねw
880デフォルトの名無しさん:2007/04/03(火) 08:40:05
>875
ぶっちゃけ何が困るのか分からない人が多数
881デフォルトの名無しさん:2007/04/03(火) 09:29:17
なんとなく気持ちが悪い
882デフォルトの名無しさん:2007/04/03(火) 09:40:04
>>880
掃除したか?
883デフォルトの名無しさん:2007/04/03(火) 09:51:34
>>880
こういう現象をみて「なんでだろう?」と考えることが重要。
この現象が起こる原因を学ぶことによって得られることはとても多い。
こういうことを気にしない奴は三流。
884デフォルトの名無しさん:2007/04/03(火) 10:30:55
それをいちいち口に出す奴は四流
885デフォルトの名無しさん:2007/04/03(火) 10:34:45
ごみ掃除に命をかけるのが二流。
ごみ掃除が必要ないコードを書くのが一流。

そして、ごみ掃除は他人任せな勝ち組のオレ。

え? そういう流れじゃないの?
886デフォルトの名無しさん:2007/04/03(火) 10:39:22
>>884
三流呼ばわりしてごめんな、この5流野郎(wwww
887デフォルトの名無しさん:2007/04/03(火) 10:54:28
「株を引っ張るおじいさん、それを引っ張るおばあさん」みたいな
888デフォルトの名無しさん:2007/04/03(火) 11:57:45
掃除をする桃太郎。
889デフォルトの名無しさん:2007/04/03(火) 20:40:21
まちがえて職場でpython.comにアクセスしてしまった orz
890デフォルトの名無しさん:2007/04/03(火) 21:02:44
thikpad(T43)を使っているんだけど、c:\IBMTOOLS\python22にはじめから
pythonがインストールされていて、pathもデフォルトで設定してあります。
この状態かから、2.5をインストールした人いますか?
別の場所にインストールして、pathを書き換えたときにPCがちゃんと動くか心配‥
891デフォルトの名無しさん:2007/04/03(火) 21:32:29
>>889
ワロスwww
892デフォルトの名無しさん:2007/04/03(火) 21:37:23
カイーコ
893デフォルトの名無しさん:2007/04/03(火) 21:56:04
python.com 知らんかった
左側に Powered by Python 書いてあるぞい.
どんなpythonだから知らないけど…
894デフォルトの名無しさん:2007/04/03(火) 22:08:14
>>890
Pythonは違うバージョンの共存で気をつけることはほとんどないよ
スクリプトを実行するときにどのバージョンのインタプリタを使うかってだけ
困るとしたら.pydタイプの拡張モジュールが当該バージョン向けに提供されてないとき
895デフォルトの名無しさん:2007/04/03(火) 22:09:07
896デフォルトの名無しさん:2007/04/03(火) 22:15:31
>>895
さすがGoogle社員w
897デフォルトの名無しさん:2007/04/03(火) 23:04:58
Google社内で失踪したPythonが見つかりました
その代わりといってはなんですがPythonの父が失踪しました
898890:2007/04/03(火) 23:09:54
>>894
ありがとうございます。
まずはインストールしてみます。
899デフォルトの名無しさん:2007/04/04(水) 00:34:44
>>889
エロサイト乙www
ウチの職場に18禁サイト巡回してた奴が居て
俺らまで外部ウェブアクセス全て禁止になったぞw

…(´□`
900デフォルトの名無しさん:2007/04/04(水) 00:40:48
学生時代友達が見てる前で
gooのエロサイトの方開いちゃって気まずい沈黙が流れたこと思い出した
901デフォルトの名無しさん:2007/04/04(水) 01:35:17
>>900
日本ではよくあること。
902デフォルトの名無しさん:2007/04/04(水) 06:45:36
神社 …
http://jinja.pocoo.org/

[...] provides a Django-like non-XML syntax and compiles templates
into executable python code. It's basically a combination of Django
templates and python code.
903デフォルトの名無しさん:2007/04/04(水) 07:22:10
>>900
goo.co.jpナツカシスw
今もう無いね
904デフォルトの名無しさん:2007/04/04(水) 14:27:53
>>903
エロサイトとは言え、いくらなんでもあの判決は酷過ぎると思った。

後から別ドメイン取ったヤツが自分とこのアドレスと紛らわしいから
どけって、それどんなジャイアンだよ。
905デフォルトの名無しさん:2007/04/04(水) 14:50:04
日韓ワールドカップのとき、
かなり昔からあった「ワールドカップ」って地酒が
販売を控えさせられたこともあったな。

いや、揉めただけで結局出せたんだったかな?
結末は忘れてしまったけど、とにかくあれも、似たようなジャイアニズムが発動してた。
906デフォルトの名無しさん:2007/04/05(木) 03:34:43
>>905
韓日ワールドカップより前かもしれんが、ワールドカップよりは後だろう。
907デフォルトの名無しさん:2007/04/05(木) 06:19:17
908デフォルトの名無しさん:2007/04/05(木) 12:34:06
ttp://www.jacobian.org/writing/2007/mar/04/hate-python/
なんか面白いの見つけたw
909デフォルトの名無しさん:2007/04/05(木) 12:52:36
910デフォルトの名無しさん:2007/04/05(木) 13:15:17
100% Python好きで使ってる奴がいるとしたら正直キモいよな
911デフォルトの名無しさん:2007/04/05(木) 13:20:14
わざわざPythonのスレで同意を求める事かよwたちわりいな
912デフォルトの名無しさん:2007/04/05(木) 13:28:14
>>910
P言語を使っているヤツらはたいていそんなもんだろ
Rはどうだか知らないけど
913デフォルトの名無しさん:2007/04/05(木) 13:51:31
five things i hate は単なるmeme現象
ttp://pythonisito.blogspot.com/2007/03/five-things-i-hate-about-python.html

嫌いながら使ってるわけじゃなくてわざと嫌いな点を挙げてるだけ
914デフォルトの名無しさん:2007/04/05(木) 15:32:39
hate っていうかそういうのは興味深いけど
そういうからには,好き・理想とするのは
どういうものなのかを教えて欲しいなぁ
915デフォルトの名無しさん:2007/04/05(木) 18:35:18
チミ達はIDEというかエディターなどというものはなに使ってる
まさかメモ帳はありえないだろ普通wwww
おれはsciteを使ってます
916デフォルトの名無しさん:2007/04/05(木) 19:05:00
vim-7
917デフォルトの名無しさん:2007/04/05(木) 19:10:29
xyzzy
918デフォルトの名無しさん:2007/04/05(木) 19:21:39
IDLE
919デフォルトの名無しさん:2007/04/05(木) 20:45:08
emacs

five-things-I-hate ってちゃんと使ってないと怖くて書けないよな‥
920デフォルトの名無しさん:2007/04/05(木) 21:06:43
PyScripter + IDLE
921デフォルトの名無しさん:2007/04/05(木) 21:18:10
秀丸
922デフォルトの名無しさん:2007/04/05(木) 23:21:04
秀丸 たまに PyCrust 併用
最終確認が必要な場合は eclipse など
923デフォルトの名無しさん:2007/04/06(金) 02:30:09
924デフォルトの名無しさん:2007/04/06(金) 11:46:48
大量のデータを処理するプログラムを書いていて
どうもメモリをモリモリ食べちゃうみたいです.

関数だけで処理していたときは起きてなかったんですが
データ処理クラスをつくって,
どんどんインスタンス変数・リストにデータを追加して
一杯になったら統計処理とかをして,リストを空にして
また始める,みたいなプログラムにしたら大変なことに.

python でのメモリリークさせないための一般的な注意事項が
どこかにまとまっていたりしますでしょうか?
あと,どの変数? リスト? が肥大化しているかとかを
調べることって簡単に出来るんでしょうか?
925デフォルトの名無しさん:2007/04/06(金) 12:54:46
それはリークでもなんでもないような

あとリソースの使用状況調査にはまずプロファイラを使うのがセオリー
926デフォルトの名無しさん:2007/04/06(金) 19:09:07
メモリーにデーターを作りすぎてしまうと言うことだろ
その場合クラスを小さくして一杯作ればいいんじゃないかな
927デフォルトの名無しさん:2007/04/06(金) 19:45:12
データーって言うヒト初めて見た。
928デフォルトの名無しさん:2007/04/06(金) 21:37:38
f(x)の答えが小数点で欲しい場合
f(4.0)ってやらないと少数にならないのですが
f(4)だけで答えが小数点になる方法教えてください
f(x)の中は自由に変えてもいいです
929デフォルトの名無しさん:2007/04/06(金) 21:40:20
floatにしてから計算すればいいんじゃまいか
930デフォルトの名無しさん:2007/04/06(金) 21:52:04
floatにしたくてもやり方がわかりません
自分で調べるので答えは要りません
931デフォルトの名無しさん:2007/04/06(金) 21:57:30
intをfloatにするほうほうがわかりません
932デフォルトの名無しさん:2007/04/06(金) 22:05:59
>>>float(4)
4.0
933デフォルトの名無しさん:2007/04/06(金) 22:09:14
ありがとうございます
とてもさんこうになります
カッコのなかは文字じゃないとだめとおもってました
934デフォルトの名無しさん:2007/04/06(金) 22:32:06
スレ違い失礼

例のpythonデザパタ厨が
隔離スレの埋め立てを開始したw

悲惨
935デフォルトの名無しさん:2007/04/07(土) 01:17:28
隔離スレの話を持ち込むな
936デフォルトの名無しさん:2007/04/07(土) 08:24:38
隔離スレのスレ主降臨か
937デフォルトの名無しさん:2007/04/07(土) 08:25:52
>>934
魚拓とっとけ
938デフォルトの名無しさん:2007/04/07(土) 11:20:20
隔離スレってどこにあるの?
939デフォルトの名無しさん:2007/04/07(土) 11:23:33
馬鹿ばっか
940デフォルトの名無しさん:2007/04/07(土) 11:46:10
キチガイには常人がキチガイに見えるらしいよね.
941デフォルトの名無しさん:2007/04/07(土) 12:27:42
たまにしかキチガイを見かけない俺様は
常人ということですな
942デフォルトの名無しさん:2007/04/07(土) 12:51:46
本当の常人は常人であることをことさら主張する必要すらないと思うがね(wwwwwwwwww
943デフォルトの名無しさん:2007/04/07(土) 12:54:14
向こうのスレで思う存分やってください
944デフォルトの名無しさん:2007/04/07(土) 12:56:44
向こうのスレってどこにあるの?
945デフォルトの名無しさん:2007/04/07(土) 20:14:11
「皆さんエディタは何をお使いですか」
的な話題を振ると非常に食いつきがいいな、このスレは。
946デフォルトの名無しさん:2007/04/07(土) 20:32:48
みんなエディタには苦労しているんだよ。
947デフォルトの名無しさん:2007/04/07(土) 20:36:45
エディタどころか「食器用洗剤は何をお使いですか」でも反応ありそうな気がする
ちなみに漏れはキュキュットさん

IronPython本、Nokia柴田Python本、みんPy柴田TurboGears本、
日本語で読めるPython本もだいぶ増えてきたね
そのうちIronPython本を立ち読みしてきたけど、関連情報が豊富でよさげだった
948デフォルトの名無しさん:2007/04/07(土) 20:40:31
オライリーに翻訳がんばって欲しいなぁ・・・
原著は疲れる
949デフォルトの名無しさん:2007/04/07(土) 21:03:35
Py厨の諸君へ告ぐ!
「日本語のは入門書ばっかりで飽きた」とか
ほざいてみるのが中級者への第一歩なのじゃよ〜
950デフォルトの名無しさん:2007/04/07(土) 21:05:11
日本語のは入門書ばっかりで飽きた
というか内容かぶりすぎ
951デフォルトの名無しさん:2007/04/07(土) 21:11:37
中級者なら、Perlクックブックの内容を
Pyに読み替えて役立てるくらいしろ。
952デフォルトの名無しさん:2007/04/07(土) 21:15:01
いや、中級者と思うようなヤツこそ、今一度基本をおさらいするべきだ.
ちゃんと書かれた入門書を隅から隅まで読め.コードの質が高まるぞ.
953デフォルトの名無しさん:2007/04/07(土) 21:23:41
>>952
それはそのとおりだと思うが、退屈に耐えられるかどうかが問題だな。
ある種、拷問に近いぞ。
954デフォルトの名無しさん:2007/04/07(土) 21:28:16
>>953
ゴメン、君には何も期待しないよ.
955デフォルトの名無しさん:2007/04/07(土) 21:31:30
ていうか繰り返し読んでコードの質が高まるような本、
そんな本ってPythonにあるの?あれば具体的に挙げて欲しい。
ライブラリのソース読んだほうがよほど良さそうな気がするんだけど。
956デフォルトの名無しさん:2007/04/07(土) 21:34:17
952は「ちゃんと書かれた入門書」の具体例を挙げるべきだろうな
957デフォルトの名無しさん:2007/04/07(土) 21:35:28
きみきみ,隔離スレに戻りなさい。
958デフォルトの名無しさん:2007/04/07(土) 21:42:14
952ではないが、
だいぶいんつーぱいそん
959デフォルトの名無しさん:2007/04/07(土) 21:49:14
python初心者が達人に説教を垂れるスレはここですか?
960デフォルトの名無しさん:2007/04/07(土) 22:04:48
>>953がみんPyとか口走って袋叩きにあう展開を期待していたのだけど。

Dive into Pythonは自分も好き。ただ、あれが入門書かって言うと
いきなりコード提示して説明してくスタイルだから微妙な気がする。
961デフォルトの名無しさん:2007/04/07(土) 22:05:20
ごめんアンカミス、>>952
962デフォルトの名無しさん:2007/04/07(土) 22:07:46
dive into python ってもう古くない?
何とか新しいバージョンのPythonに付いて行こうとして
加筆した形跡があるだが、もう諦めましたって感じ。
963デフォルトの名無しさん:2007/04/07(土) 22:36:13
>>960
Zope関係者乙。
964デフォルトの名無しさん:2007/04/07(土) 22:38:51
キチガイには常人がキチガイに見えるらしいよ.
965デフォルトの名無しさん:2007/04/07(土) 23:59:44
どうもPythoniansにはスルー力が欠けているようだ
966デフォルトの名無しさん:2007/04/08(日) 00:30:55
いまだに「するーか」と読んでしまう
967デフォルトの名無しさん:2007/04/08(日) 01:16:51
「するーちから」と読んでしまう奴はダンバインマニア?
968デフォルトの名無しさん:2007/04/08(日) 01:40:39
読むべきはインタプリタのコードだろ
969デフォルトの名無しさん:2007/04/08(日) 02:01:15
>967
イデオンスキーな俺もそう読むぜ
970デフォルトの名無しさん:2007/04/08(日) 02:02:43
>969
スパロボ好きの俺もだ
971デフォルトの名無しさん:2007/04/08(日) 02:03:49
頼むから隔離スレに帰ってくれよ
972デフォルトの名無しさん:2007/04/08(日) 02:04:49
なんでも隔離スレって言ってればいいもんじゃねーぞ
973デフォルトの名無しさん:2007/04/08(日) 02:05:43
>344 名前: ひろたか Mail: sage 投稿日: 2007/03/30(金) 14:44:46
>>ひろたかは何のためにPythonを使おうと思ったの?
>
>あん? 金儲けのためよ。
>俺様がPyhonの本を書けば、Py厨が喜んで買うかなと思ったんだ。
>が、市場調査の結果、お前らは金持ってなさそうだと判明したんで
>撤退しというわけ。
>
>世の中、ゼニだ。金持ちを相手にしないとな。

がんばれよ(wwww
974デフォルトの名無しさん:2007/04/08(日) 02:07:19
出典を示さない引用は捏造と変わりがない。
975デフォルトの名無しさん:2007/04/08(日) 02:12:48
故意に↓の話題出してるやつがいるな
こっちでは相手しないで、向こうでしてくれ

デザパタ + python
http://pc11.2ch.net/test/read.cgi/tech/1172431242/
976デフォルトの名無しさん:2007/04/08(日) 03:09:16
隔離スレってこのスレか。
すげえな(w
977デフォルトの名無しさん:2007/04/08(日) 03:26:00
すげえよ
978デフォルトの名無しさん:2007/04/08(日) 03:38:24
>>973
なにこの壮大な野望(wwwww
979デフォルトの名無しさん:2007/04/08(日) 03:50:37
あれはいろいろ言われて、開き直ってキャラ作ってるだけ
980デフォルトの名無しさん:2007/04/08(日) 12:32:55
みなさん「スルーか」が足りん。
隔離スレに言及しちゃ隔離する意味なくなっちゃうでしょ

#ああだめだ「スルー力」が「スルっとKANSAIカード」に脳内変換されてしまう…。
981デフォルトの名無しさん:2007/04/08(日) 12:36:38
正しくは「スルッとKANSAI」だ (小さいツはカタカナ)
982デフォルトの名無しさん:2007/04/08(日) 14:22:35
>>980
# 同じく!!!
983デフォルトの名無しさん:2007/04/08(日) 14:30:11
春だな。
984デフォルトの名無しさん:2007/04/08(日) 15:04:37
なにこのスラド
985デフォルトの名無しさん:2007/04/08(日) 16:39:17
ルールを守る力を、ルールカと命名する。
986デフォルトの名無しさん:2007/04/08(日) 16:49:46
ならパイソンのプログラミング技術はパイソン力か!

# 下らないので AC
987デフォルトの名無しさん:2007/04/08(日) 16:52:50
アニオタゲームオタ氏ね。
988デフォルトの名無しさん:2007/04/09(月) 02:51:37
関西の奴らはレベルが低いでFA?
989デフォルトの名無しさん:2007/04/09(月) 03:29:06
関東も「スイー力」とかいう言葉があったら反応するね
990デフォルトの名無しさん:2007/04/09(月) 03:42:48
日本の恥。
991デフォルトの名無しさん:2007/04/09(月) 11:04:14
釣り師惨敗。ム板のスルー力に感動。
992デフォルトの名無しさん:2007/04/09(月) 11:10:44
>>991
ニヤニヤ
993デフォルトの名無しさん:2007/04/09(月) 12:25:42
994デフォルトの名無しさん:2007/04/09(月) 20:54:29
あと残り少ないからくだらないことを書き込んでみるぜ。
スルー力を見てユンカースJu-87スツーカを思い出したオレは軍板住人。
995デフォルトの名無しさん:2007/04/09(月) 20:58:07
なんかパイソンカってネフレン・カみたいな響きだな。
996デフォルトの名無しさん:2007/04/09(月) 21:01:09
チェブラーシ力
997デフォルトの名無しさん:2007/04/09(月) 21:23:22
埋め
998デフォルトの名無しさん:2007/04/09(月) 21:26:43
探し物は何ですかー
999デフォルトの名無しさん:2007/04/09(月) 21:36:50
1000デフォルトの名無しさん:2007/04/09(月) 21:39:29
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。