1 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:23:19 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc12.2ch.net/test/read.cgi/tech/1240678081/
586 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 21:24:22 ] 並列実行用のモジュールにMultiProcessingというのがあるようなんですが、 メモリ共有型の場合でも対応できるんでしょうか? 例えば大きな行列があって、並列処理で別々の部分を処理したりしたいんですが。。。 threadingでは実際には並列効果がないというのを知ってショックを受けてます・・・
587 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 21:26:11 ] yes you can
588 名前:デフォルトの名無しさん [2009/08/29(土) 22:16:41 ] 【JAVA質問スレより】 940 :デフォルトの名無しさん:2009/08/29(土) 22:08:40 >>937 一番もてるのはperl。 もっとも嫌われるのはpython。 C,C++は、相性とテクニック次第。 なんで?
589 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:18:57 ] なんでそいつに聞かないの?
590 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:19:07 ] モテる相手がバグだからさ
591 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:29:02 ] うまいな
592 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 22:31:09 ] >>586 docs.python.org/library/multiprocessing.html#sharing-state-between-processes 俺は使ったことない。共有メモリマシンでうまく並列効果が出たら是非教えて。
593 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 00:34:25 ] >>588 なんでか知らんが、俺の周りでもpyてょnは変態呼ばわり。
594 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 00:42:05 ] 凡人には使えない言語だ
595 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 00:44:18 ] 言語じゃなくて使ってる人が変態(ry
596 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 00:45:57 ] 変態専用か
597 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 00:48:05 ] 変態じゃないよ 仮に変態だったとしても変態という名の紳士だよ
598 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 09:38:36 ] 俺もうんこ喰うけど別に変態ってわけじゃないな
599 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 10:57:11 ] 凡人は使わない言語だ
600 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:28:05 ] またruby厨の荒らしっすか
601 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:31:27 ] ruby厨は使わない言語だ
602 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:50:15 ] そりゃそうだ
603 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 14:12:06 ] これは良いマイキースレ
604 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 23:27:50 ] >569,570 他はともかく 4. Call Perl from Python これはあり得ないだろ…
605 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 23:44:40 ] 大学の時の教授は os.system 呼びまくりだったから あり得ない話ではない。
606 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 12:29:07 ] > 4. Call Perl from Python いま仕事で使ってるスクリプトがまさにそれだ……
607 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 12:36:15 ] CentOSってPython2.4なんだけど、2.5とか2.6で動かすメリットって大きい? 用途としてはDjangoでWebアプリ
608 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 13:04:28 ] >>607 困ってないなら何もいじる必要ないのでは? 特にスピードが速くなるとかは感じない. でも自分でコード書くなら 2.6 使っておくとよいのではとおもう. 3.x 系は自分としては使いたい拡張モジュールが 対応していないのでNG.標準モジュールだけならありかと.
609 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 13:22:37 ] >>608 サンクス 実行速度とかは特に差が出ないのね Javaなんかだとバージョンあげると明らかにパフォーマンスあがるもので気になっていたので。 モジュールとかはおおむね2.4以降なら動くみたいだしそのままでいくわ
610 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 17:41:42 ] 2.4はkuso
611 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 18:14:33 ] 理由は?
612 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 18:30:47 ] ttp://www.shido.info/py/python10.html ttp://ml.zope.jp/pipermail/zope-users/2009-January/006160.html
613 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 00:35:36 ] システムのバージョンを上げるのはトラブルの元 ローカルに入れるのならおk
614 名前:!omikuji!dama mailto:sage [2009/09/01(火) 05:35:25 ] test
615 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:02:02 ] 無責任に逃げ出すゴミ虫はなにやっても駄目だけどな
616 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:05:07 ] 自虐すか(笑)
617 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:20:44 ] 誰か逃げたの?
618 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:27:09 ] >>617 俺知ってる(w
619 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 12:05:09 ] 仕事しろ、あとTwitterでやれw
620 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 12:08:06 ] ゴミ虫はゾンビ化するとやっかいだから、煽らない方がいいよ...
621 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 12:09:11 ] よくみんな黙ってるよ みんな大人だ
622 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 12:24:48 ] 逃げちゃう人ってそいつが存在しなくたってまったく問題ナッシングなことを証明するチャレンジャーだよね
623 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 13:23:43 ] レッドソックス松坂のことか
624 名前:デフォルトの名無しさん [2009/09/01(火) 14:30:36 ] FreeBSDで checking for python libraries... not found って言われたのですが /usr/local/lib/python2.6 じゃないんですか?
625 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:36:54 ] Makefileもよめないの?
626 名前:デフォルトの名無しさん [2009/09/01(火) 17:22:32 ] ぴーひゃらりんこだぷー
627 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 17:23:35 ] あんなの読むのは土方とマニアだけでいいと思うんだ
628 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 17:29:31 ] そうだね、フリーライダーは読まなくていいね
629 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 17:35:18 ] matplotlibの最新版でグラフにアノテーションつける機能が使いたかった 古いシステムではnumpyが古くて入らなかった numpy関連全部バージョン上げるの大変だからOSのバージョンごと上げたらいろいろ大変になった
630 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 17:59:01 ] 人間性から見て一生底辺だね どんな仕事についても駄目っぽいね
631 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 18:05:29 ] おまいらPythonの話をしろよ たとえばだな ドジャンゴ・イン・アクション www.manning.com/geewax/
632 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 18:12:42 ] >>624 よくわからんけど upgrade-site-packages やってないとかいうオチ?
633 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:11:04 ] Pythonってopensslライブラリが標準ではついてこないのか。 くそ。
634 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:36:26 ] pythonとは関係ないからな
635 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 01:02:40 ] ssl
636 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 01:24:29 ] OpenSSLがついてこないから、標準ではRSAとかの暗号関連ができないのか。ざんねん。 >>635 SSLができてもなあ・・・
637 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 03:31:18 ] twisted
638 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:49:43 ] twisted標準化してくれよ
639 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 09:57:04 ] >>633 , >>636 paramikoがお勧め。
640 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:14:19 ] >>638 やだ
641 名前:デフォルトの名無しさん [2009/09/02(水) 10:43:23 ] >>607 Cent OS は使用した事が無いですが? OS version default の directory を残して python support Link の patch を当てるのが無難だと思います… python support Link の patch を取っていれば問題ない様です… version up をするので在ればですが…
642 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 12:55:41 ] ドカタかフリーライダーか、とかそういう対立軸以前に 余裕があるのかないのか、という人間としての質の差が重要な気がしている
643 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:12:17 ] <⌒/ヽ-、___ /<_/____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄
644 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 14:39:21 ] | |/(-_-)\| | | ∩∩ | |  ̄ ̄ ̄ ̄ ̄ (-_-) … (∩∩)──────────────── / / / むかしはぱいそんができればぐーぐるにいけるとしんじていました でもいまはかんがえをかえました ttp://promotion.yahoo.co.jp/charger/bokoboko/r47/r47_02.php
645 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:09:10 ] 口をきいてもつまらなく、得るモンもなきゃ、しゃべる意味ないやろ。
646 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:15:00 ] お前がひとりぼっちなのはよくわかったからPythonのことを書けよ。
647 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:15:50 ] 社会のために、 そのまま引きこもっとけや。
648 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 15:16:30 ] もちろん靴下装備で
649 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:00:24 ] 社会の為にいろいろ活動します
650 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:54:02 ] 自宅を警備します
651 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 18:06:53 ] 二次元世界との架け橋を作ります。
652 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 05:49:55 ] \ \
653 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 09:38:46 ] 口
654 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 13:53:35 ] python2.5でプロセス操作が可能なライブラリってありますか?
655 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:34:36 ] subprocess
656 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:08:56 ] >>651 うpろだの事かー!
657 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:31:49 ] 何番? ttp://long.2chan.tv/jlab-long/s/long1252027171807.jpg
658 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 21:48:32 ] d = dict としたあとで key in d が出来る様にするにはどうすればいいんだろう?
659 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:37:06 ] >>658 d = d()
660 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:08:03 ] d = d.keys()
661 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 12:07:43 ] いつもdictでfor文まわすのってどうやるんだったっけって調べてしまうぜ。 いちいち言語の文法をそらんじなくなって久しい。
662 名前:デフォルトの名無しさん [2009/09/05(土) 12:21:13 ] >>660 なんでわざわざdictのkeyを取り出す必要があるんだ?
663 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:28:02 ] >>662 keyの文字列自体を何かに使いたいとき
664 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 13:50:23 ] 入門書嫁。
665 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 15:33:28 ] リファレンス嫁。
666 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 23:55:21 ] Python + C# 最強説あらわる。これでR**yを殲滅できるぞ! ttp://d.hatena.ne.jp/wasisan/20090905
667 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:01:46 ] またRuby厨があらしてるのか
668 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:33:49 ] C#イラネ ヘジのクラスライブラリは勘弁
669 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:11:00 ] どうみてもPythonもC#も被害者じゃないか
670 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:35:09 ] いや、普通にPython+C#で商用プログラム書いてるところですが何か。
671 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 10:12:46 ] >>666 変な主観で語られてもなぁw
672 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 11:30:55 ] それと比べたらたとえ揚げ足取りであったとしても、ちゃんと文章を細かく読んでくれて、理由もつけられて、 その文章内容自体について説教・罵倒される方がはるかにましだということにあの人たちはなぜか気づかない (多分、リアルがそれなりに充実した幸せな人たちだからだろう)。今の時代、話を聞いてくれて、まともな ことを言ってくれる近所の頑固親父的な人なんて絶滅危惧種なのに。 まあ、普通の大人の現代(近代)社会を考えると仕方がないのかもしれないけど。よく言われることだが、社会人は 自分の利益になるケース以外では他人(特にいわゆる「バカ」)に対して注意なんてすることはないのだ。 そんなの時間がもったいない、「時は金なり」ということ(まったくいやなことだが)。 それにしても、「「バカ」であることを自己認識し自重する人たち」にとっては、現代とはなんと寂しい・辛い世界 であることか。その人たちは相手にされること、馴れ合うことすらできないのだから。
673 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:10:50 ] αブロガーっぽいコピペだな
674 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:13:06 ] 最初の二行を読むだけで目が回ったが
675 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 13:29:13 ] 括弧が多すぎる。統合失調症の臭いがする。
676 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:05:16 ] 単にLISP使いなんだろ
677 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:18:57 ] >>657 まいんちゃん一択
678 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:40:01 ] 真のLisperは括弧を省略しない
679 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:04:58 ] Python使いからすると 閉じ括弧を省略できると最高なんだが
680 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:08:22 ] かつて、対応する括弧までを一気に閉じるスーパー括弧というのがあってだな
681 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:09:27 ] haskellの$演算子はカッコを減らすのにいい
682 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:22:28 ] Python使いの口癖 オフサイド!
683 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 01:14:27 ] 「M式というのもある」と発言してうそつき呼ばわりされた屈辱の日々
684 名前:デフォルトの名無しさん [2009/09/07(月) 06:57:21 ] 最近C++一辺倒でもなと思ってPythonを使い始めたやつですが, Pythonってのは本質的に関数言語であって,クラスシステムは 後付けっつーことですか? self とか cls があらわになっているをの見て, そういうもんなのかなと. なぜPythonに手を出したかというと 普段使わなくても多重継承がないと不安だからとか そういう理由だとまた叩かれるのかな.
685 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 07:17:35 ] ドMの癖に いやらしいねえこの男は
686 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 07:19:35 ] >>684 OOP機能は最初から装備されていたそうなので、あとづけではないらしい。 そこかしこに不自然さが残るのは確か(superとか)なんだけど、許容範囲だから我慢してる。 あとPythonの作者は関数型言語をあまりよく知らないらしいから、「本質的に関数型」ではなくて「偶発的に関数型」じゃないかな。 > self とか cls があらわになっているをの見て, > そういうもんなのかなと. そういうもんです。違和感あるだろうけど、我慢できる範囲だと思うので、我慢して使ってください。そのうち慣れます。
687 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:28:42 ] >>684 個人的にはselfとかどの名前空間なのか明示する方が分かりやすい 省略しまくる言語とか訳分からん記号使いまくる言語は氏ねとか思う
688 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:48:25 ] >>687 そうじゃない。self.method()は別に構わない。 def method(self): がちょっと嫌いなだけ。
689 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 08:55:11 ] > self とか cls があらわになっているをの見て, > そういうもんなのかなと. そういうもんです。 どの名前空間なのか明示する方が分かりやすいです。 慣れないうちは __init__() に self 入れ忘れて、 "引数の数があわない" という一見変なエラーに悩まされますが、 そのうち気にならなくなります。 どちらかというとわたしは unicode/str の encode/decode でよく悩まされました。 こちらももうすっかり慣れましたけど。 どちらも今となっては良い思い出です。
690 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:12:47 ] >>688 俺も前から第一引数のselfに疑問を持っているんだが、Guidoがimplicit selfを 絶対に導入しない理由は何なの? ちょっとググってみたが良く分からんかった。
691 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:15:08 ] >>688 selfまで省略されるとお前どっから来たんだよッて俺がキレる
692 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:31:39 ] 書くときは冗長に思えるけど読むときには便利、と思えるかな?>self
693 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 09:53:30 ] >>690 これは既出? www.python.org/doc/faq/general/#why-must-self-be-used-explicitly-in-method-definitions-and-calls
694 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:01:34 ] >>693 和訳。 coreblog.org/ats/translation-of-why-explicit-self-has-to-stay どのくらい正確なのかはわからんが。
695 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:39:14 ] >>693 それは読んで知ってたけど、論拠としては弱いと思ってた。 >>694 サンクス。これを読んで一応納得した。デコレータを使った時に困るのは分かるが、 半分以上はGuidoの思想上の問題のような気がする。本人が絶対にexplicit self を無くさないと言っているのだから仕方ないが。
696 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:50:10 ] Pythonのメソッドって関数みたいなもんでしょ? 逆にいつでもselfを使える前提にするほうが変だと思う。 引数とって値を返す、関数らしい構造で良いと思う。 逆にRubyでは関数はメソッドの亜種だから、関数でもわざわざselfが設定されてる。 Javaではそもそも裸の関数が無いのだからselfがあるのは納得。
697 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:50:53 ] って、Javaはthisだった、ごめ
698 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:51:49 ] >>695 >デコレータを使った時に困るのは分かるが、 自分はここがよくわからないんだけど、だれか解説たのむ。 以下引用: > メソッドがデコレートされたときに,self引数が渡されるかどうかを知ることはできない。 > というのは,デコレータはメソッドをスタティックメソッドに変えることもあるし(この場合selfはない), > クラスメソッドに変えることもあるし(この場合は,selfの変わりにクラスオブジェクトが渡される), > まったく違ったことをすることもできる > (@staticmethodや@classmethodと同じ働きをするデコレータをPythonで書くことは希だと思うが)。 > つまり,デコレータが何をするかを知り得なければ,メソッドに明示的にselfが定義されているかどうかを知ることができないのである。
699 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 10:55:19 ] >>696 > 逆にいつでもselfを使える前提にするほうが変だと思う。 >>694 のリンク先を読めば分かるが、そんなことは誰も主張してない。
700 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:08:55 ] >699 しってるよw 俺の感想を言っただけ。
701 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:13:11 ] 見苦しい言い訳だな。妄想は自分の脳内で完結させろ
702 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:13:57 ] >>698 デコレータは関数を引数にとって「何か」を返す関数。 クラス宣言の中でデコレータを使うと、デコレータの返したモノがクラスのメンバになる。 そうするとコンパイル時に「何か」を決定できないので暗黙の引数を追加できない。
703 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 11:30:51 ] >>701 それ自体が>>699 の誤読の見苦しい言い訳であり 脳内からはみ出たお前の妄想じゃんw
704 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:10:27 ] >>696 classと無関係なただの関数はself書かなくていいよ
705 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:13:24 ] お前は何が言いたいんだ
706 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:15:07 ] 基地外が暴れだしたか
707 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:22:47 ] 今更selfがなくなると違和感ありまくり。
708 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:44:13 ] 解説ありがとうございます。でもやっぱりわからない。 >>702 >デコレータは関数を引数にとって「何か」を返す関数。 >クラス宣言の中でデコレータを使うと、デコレータの返したモノがクラスのメンバになる。 ↑これはわかる。↓これがわかんない。 >そうするとコンパイル時に「何か」を決定できないので暗黙の引数を追加できない。
・コンパイル時に「何か」を決定することと、暗黙の引数を追加することに、どういう関係がありますか? ・コンパイル時ではなく実行時に決定するのではだめでしょうか。 ・暗黙の引数を、追加するのではなく最初から追加しておけばいいように思うけど、それだとまずいでしょうか。 だれか時間のある人教えてください!
709 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 12:45:54 ] オナニー言語やね
710 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 14:42:38 ] 低脳はPHPがRubyをやればいいよね
711 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 14:54:08 ] またRuby厨が荒らしてるのか まったく・・・
712 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:04:02 ] >>698 デコレータは関数を関数に変換するもの(最近はクラスもできるが)。 self必須にすることで関数とメソッドはほぼ互換になる >foo.meth(arg) == C.meth(foo, arg) ここで、C.methは関数扱いできる。 メソッドが関数として扱えるので、 メソッドのデコレータは関数のデコレータを作るのと同じやり方でできる。 逆にself省略できるようにしたらメソッドのデコレータを作るのが難しくなると思う。
713 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:20:37 ] >>712 若干の冗長性が柔軟性を生むいい例だね。 Pythonは仕様の簡潔性が特徴のスクリプト言語なわけで。 (予約語や特殊な文法が少ない)
714 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:33:22 ] >>712 厳密に言うと、デコレータの出力は関数とは限らないよね。 @property def foo(self):... みたいにすると、 foo は foo.__get__() というメソッドが定義されたオブジェクトになる。
715 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:37:47 ] すげー今更だけどこれって紹介されてたっけ? Python 3.0開発者ガイド:コア言語の変更点 Python 3.0の主要な言語機能 codezine.jp/article/detail/4051 Python 3.0開発者ガイド:数値、文字列、データ codezine.jp/article/detail/4052
716 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:41:09 ] >>714 いや、まぁそこら辺は厳密性を犠牲にして説明しやすくしたということで(ry
717 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 19:08:14 ] codezineの翻訳はクソ
718 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 02:33:13 ] >>717 神降臨 書き換えてこい
719 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 09:37:04 ] reportlabでpdfを作ると 同じものを作っても作るたびに 出来るファイルのサイズが違うのですが こんなもんなのでしょうか? pdfデータに日時が入ってるのかな
720 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 10:24:59 ] 帝国ピストンはMLで質問しろよ
721 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:47:07 ] 動的に渡す関数(メソッド内で関数を定義して戻り値で返すような)って、 自由変数の束縛はいったいどうやるんだ? そういうことをやりたいときはグローバル変数使うかクラス使うかしかないんだろうか……。
722 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:31:53 ] やってからいえ 関数の呼び出し->local名前空間の生成->関数オブジェクト生成->local名前空間の解放->関数オブジェクト返る 関数オブジェクトから参照してる変数は上位の名前空間が消えてもクロージャな参照が残ってるからGCに回収されずに使える
723 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:21:31 ] >>やってからいえ その言葉をそのまま返そう。 外側のメソッド[A]で定義した関数内関数[B]で[A]のローカル変数aを[B]内で使用しようとしたとき、 [B]内でそのままaと書くと未定義参照エラーになる。 かといって[B]の引数で与えても値渡しなのでa自体を書き換えることはできないよね。
724 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:32:29 ] python3 nonlocal
725 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:38:48 ] >>> def fa(): ... a=3 ... def fb(): ... a=5 ... print a ... print a ... return fb ... >>> b=fa() 3 >>> b() 5
726 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:42:35 ] nonlocalをpython2.xで模倣するときは ・L=[x]みたいにリストにして、L[0]に対する操作にする ・f.x = xのように関数の属性にして、f.xに対する操作にする
727 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:53:18 ] >>725 >>> def fa(): ... a=3 ... def fb(): ... a+=5 ... print a ... print a ... return fb ... >>> b=fa() 3 >>> b() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 4, in fb UnboundLocalError: local variable 'a' referenced before assignment >>>
728 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 16:05:07 ] >>726 ですよねー。 ふと調べてみたらそれについて記述したページを見つけたよ。 www.shido.info/py/py1_comment.html 実際にやってみたら 関数内関数[B]の中だけじゃなくて、 外側のメソッド[A]の側でも配列参照してあげないと 変更後の値にアクセスできないね。 実用にはなるんだけど不便だ……。 ともあれ、やり方がわかったよ。ありがとう。
729 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:11:51 ] >>726 >>> def fa(): ... a=3 ... def fb(): ... fa.a+=5 ... print fa.a ... print a ... return fb ... >>> b=fa() 3 >>> b() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 4, in fb AttributeError: 'function' object has no attribute 'a'
730 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:14:10 ] >>728-729 >>> def fa(): ... fa.a=3 ... def fb(): ... fa.a+=5 ... print fa.a ... print fa.a ... return fb ... >>> b=fa() 3 >>> b() 8 >>>
731 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:40:00 ] >>727 >>729-730 Pythonのニシキヘビ共が、タチコマみたいな会話してるみたいで萌えたw
732 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 03:07:25 ] pprintを使ってて、読めなくなった日本語をそのまま、読めるようにしたい。 >>> k=dict(hoge=u"欝") >>> k {'hoge': u'\u6b1d'} >>> r=pprint.pformat(k) >>> r "{'hoge': u'\\u6b1d'}" >>> これを、pprintのフォーマットを保持したまま "{'hoge': u'欝'}" みたいに人が読める形に、出来ませんか?
733 名前:732 mailto:sage [2009/09/09(水) 03:22:29 ] 自己レス 一旦unicode化して、"unicode-escape"を使えば行けた。 #!/usr/bin/env python # -*- coding:utf-8 -*- import pprint d=dict(hoge=u'欝') k=pprint.pformat(d) print k >>>{'hoge': u'\u6b1d'} u=unicode(k,'utf-8') print u.decode('unicode-escape') >>>{'hoge': u'欝'} 配列の中に入った日本語とかも効くようだ。
734 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 07:20:56 ] 関係ないけど /usr/bin/env を使うのは環境依存でハマる事があるからあまり良くない気が。
735 名前:デフォルトの名無しさん [2009/09/09(水) 12:17:23 ] 環境依存ではまらないように設けた仕組みだろうに、 環境依存で動かないなんて本末転倒だな。
736 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:20:34 ] > /usr/bin/env を使うのは環境依存でハマる 具体的に詳しく。 /usr/bin/env が無くて /bin/env とか、 PATHの設定に問題が、とか?
737 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:30:11 ] /usr/local/bin/env
738 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:07:17 ] >>734 おれも詳しく知りたい。 #!/usr/bin/python #!/usr/local/bin/python はよくなくて #!/usr/bin/env python とするほうがいいとずっと思ってたんだけど、違うの?
739 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:17:43 ] 734は相当劣悪な環境を使っているに違いない。激しく同情する。
740 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:20:49 ] レンタルサーバで使えない
741 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:21:17 ] HOME以下に自分でビルドしたPythonをインストールしてパスを通してるとき、 /usr/bin/meld とかディストリビューションのアプリが #!/usr/bin/env 使ってて 軒並み動かなくなったなぁ。
742 名前:デフォルトの名無しさん [2009/09/09(水) 15:49:53 ] ターミナルから起動して使うと、なぜか出力が最後にまとめて行われてしまいます。 バッファリング周りを自分なりに調べて試してみたのですが、改善しません。 教えていただけるとうれしいです _ _ #!/usr/bin/env python -u import sys for line in sys.stdin: line = line.rstrip() if line: print "true" else: print "false" sys.stdout.flush()
743 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 15:54:45 ] >>741 どうでもいいところでハマってそれを自慢したがるド変態のM夫君っているものですね。
744 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 16:07:48 ] 質問の本題とは関係ないのだが、 > #!/usr/bin/env python -u shebang で複数の引数を渡そうとした場合の動作は移植性がない。
745 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 16:36:04 ] >>743 でもこの場合は、単に君が、どうでもいいところで「こいつは自慢してるんだろう」と誤読する キチガイなだけでは?
746 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 16:45:37 ] #!/usr/bin/python にすればいいじゃん?
747 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:06:46 ] python2.6.2/python3.1.1 ○バッファされない ×バッファされる × py2 sys.stdin ○ py2 sys.iter(stdin.readline, None) ○ py3 sys.stdin ○ py3 sys.iter(stdin.readline, None) ファイルのf.next()は効率のために先読みするんだけど、それが原因かな。 py3でどこが変更されたかはよくわからなかった
748 名前:747 mailto:sage [2009/09/09(水) 17:07:36 ] 訂正。 × py2 sys.stdin ○ py2 iter(sys.stdin.readline, None) ○ py3 sys.stdin ○ py3 iter(sys.stdin.readline, None)
749 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:08:49 ] 出力がバッファリングされてるんじゃなくて、 > for line in sys.stdin: これのために、入力が終わるまで実行が止まってる。 for line in iter(sys.stdin.readline, ""): こうする。
750 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:21:07 ] ああpy3kのf.__next__は単純にf.readlineを呼び出すだけみたいだ。 ドキュメントには先読みすると書いてあるけど、たぶんこれはドキュメントのバグ。
751 名前:742 mailto:sage [2009/09/09(水) 17:36:41 ] >>744 ありがとうございます、勉強になります! >>747-750 ありがとうございます、出来ました! バッファリングの問題じゃなかったんですね、お恥ずかしい。
752 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 17:49:21 ] >>745 変態のくせにプライドだけ高いなんてどんだけひとりぼっち君。
753 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 18:00:03 ] >>752 今度の設定はプライドか。ってか俺は>>741 ではないし。 なんか君のキャラ設定って、鏡に映った君自身っぽい。
754 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 19:31:14 ] >>753 >なんか君のキャラ設定って、鏡に映った君自身っぽい。
755 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 19:52:00 ] 自分のキャラ設定は鏡に映った自分自身という、再帰的新感覚キャラ「なんか君」
756 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:06:07 ] てっきりスルーされると思ったらそうでもなかった。 env の話はこのへん分かりやすかったです。 ya.maya.st/d/200606c.html#d20060625
757 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 22:23:02 ] 情けないようで逞しくもある
758 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 22:45:56 ] 俺はUnix系の環境持ってないから分からんけど #!python だとダメなの?
759 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:48:18 ] 堂々巡り開始
760 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 12:56:13 ] >>758 #!./python
761 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 13:48:03 ] emacsでpython編集してたら、なんか嫌になった netbeansにしようかなあ
762 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 14:44:37 ] >>760 えーと、どゆこと? パスが必須ってこと? それとも、そういう意味に解釈されてしまうってこと?
763 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:35:12 ] >>761 バイナリをテキストエディタで編集しちゃダメですよ。
764 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:40:31 ] slimeだったらタグファイル作らなくてもタグジャンプしてくれたり、 何も設定しないデフォルトでほとんど何でもできちゃうのに python.elが貧弱すぎる
765 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:44:17 ] うちのCentOSのPythonは /usr/bin/python 2.3 (プレインストール) /usr/local/bin/python 2.5 (自分でコンパイル) が入ってる ちなみに /usr/bin/python を 2.5 で上書きしてしまうと yum が動かなくなるのでこうしてる 自分の shell の path は /usr/local/bin/python が先なので #!/usr/bin/env python と書いても大丈夫なような気がするけど 自前のスクリプトは #!/usr/local/bin/python で作ってるよ
766 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 17:51:22 ] stow使ってる
767 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 03:05:13 ] >>761 kondoはどうよ?emacsキーバインディングもある www.activestate.com/komodo_edit/
768 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 03:35:09 ] >>767 もちつけw
769 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 11:01:20 ] こども? 近藤さん?
770 名前:デフォルトの名無しさん [2009/09/11(金) 11:35:07 ] Python 3 シリーズを将来使うために 今 2.3 とかで動かしているスクリプトを メンテのたびに 2.6 に移し始めてます. 以降のためのガイドライン(from future importとか) のページってありませんか? 出来れば日本語だとうれしい・・
771 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 12:02:29 ] >>770 >出来れば日本語だとうれしい・・ Rubyなら日本語の情報が盛りだくさん!
772 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 12:13:59 ] >>761 Editraはどうよ?viキーバインディングもある editra.org/
773 名前:デフォルトの名無しさん [2009/09/11(金) 13:21:08 ] eggファイルってWindowsのPythonでも使える?
774 名前:デフォルトの名無しさん [2009/09/11(金) 16:07:04 ] つかえましたすまそ
775 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 17:18:07 ] eggファイルといえば、site-packageにはいったeggが 展開もされずにそのまま動いてて、どうしてコレで動くんだろ? って思ったことはあるな。
776 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 17:26:28 ] Pythonのimportは拡張することが出来て、zipファイルからimportする拡張がデフォルトで入っている。 非圧縮zipだとファイルシステムからstatする時間が要らなくなるので通常ファイルのモジュールよりも 高速にロードできる。
777 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 17:30:00 ] 777
778 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:16:23 ] Windows版2.5.1で試したことあるが python.exeとpython25.dllだけあれば 後は全部zipに入れても動くよw zipの中身適当に絞り込んだやつと、exeとdllを、未だUSBに入れてあるわ〜
779 名前:デフォルトの名無しさん [2009/09/11(金) 18:38:46 ] Python でメモリがつがつ使うプログラム書くと, 当然ながら仮想メモリまで食いつぶしていきますよね? せめて自分がどれくらいメモリを使っているかくらいは 知りたいのですが,OSに依存しないメモリ使用量の 取得方法ってあるでしょうか? メモリ上にデータをキャッシュするようなアプリを書いていて 最終的にはスラッシングが起こりだしたらキャッシュの量を 減らすというような処理を行いたいと思っています. 最終的には.
780 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:06:40 ] >>OSに依存しないメモリ使用量の取得方法 ざっと探してみたけどないので君が作るといい
781 名前:デフォルトの名無しさん [2009/09/11(金) 20:26:46 ] easy_install は便利だけど同じパッケージの新しいバージョンをインストールしても 上書きしていくだけなんだよね?古いバージョンのアンインストールをきれいにやってから 新しいバージョンのパッケージをインストールしてくれないものだろうか?
782 名前:デフォルトの名無しさん [2009/09/11(金) 20:32:06 ] 俺もピートン勉強すっかな
783 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 22:29:18 ] >>772 日本語を入力するまでは満足してました。
784 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 23:09:59 ] >>779 どれぐらいのメモリを使ったらスラッシングが始まるのかがOSに依存すると思うのですが。
785 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 23:18:02 ] >>784 それは別にOS依存しててもいいのでは? 大事なのはスラッシングが起こったことが検知できるかどうかでしょ。
786 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 00:09:53 ] ああいえばじょうゆう。 んなことできる訳ねーダロカス
787 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 00:18:06 ] むしろスラッシングが起こったことをアプリ側に分からないようにするのが近代的なOS設計だと思うんだが。 それに逆らってどうする。
788 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 05:36:22 ] >>787 スラッシングがおこってもプロセスが実行しつづけられるようにするのは近代的なOSの設計だといえるけど、 スラッシングが起こったことを検出できない、検出させないのは、別に近代的でもなんでもない。 検出できるような設計にしたら近代的でなくなるのか?そんなわけない。
789 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 08:34:37 ] 今年はじょうゆう14年か
790 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 11:30:03 ] >>788 で? Pythonのプログラムが書きにくいからってOSの開発者に文句を言うつもりか?
791 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 11:31:32 ] >>788 は気にくわないことすべてに文句つけそうで怖い。
792 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:21:38 ] 788の方がまっとうな考えだな。 にちゃんは半可通が多数決で正しい答を出すから恐いw
793 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:31:19 ] >>790 間違いを指摘されたからといって怒るなよ。 なんで > Pythonのプログラムが書きにくいからってOSの開発者に文句を言うつもりか? ということになるんだ?意味わかんねー。 別に間違っててもいいじゃんか。指摘されたら修正すればいいだけ。 間違いを認めようとせず、ごまかすためにキレるほうが格好悪いぞ。
794 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:39:55 ] まぁ、かと言って、全く非の打ち所のない言語もまだないからな。 その中でPythonはかなり使いやすい部類だと思う。
795 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:42:47 ] 摩訶不思議なコードを書いて俺SUGEEEしてる人が少ないのが良い
796 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:02:05 ] つか当初の質問のレベルが低すぎるだけじゃね。
797 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:04:38 ] >>795 摩訶不思議なコードを書くのは そうでもしないと今流行りの機能が実装できない(C++の謎なテンプレートとか)か、 変なコードのほうが高速だったり(末尾再帰とか) ミスが起こりにくかったりする(if(0==x){〜とか) とか、そんな事情がある。 Pythonはそもそもそういうのが起こらないように設計されてるからなー
798 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:06:36 ] 最初はメモリ使用量とスラッシングの話だったのに 気づかないまま別の方向に向かっているおまいらがすき
799 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:38:21 ] zope.interfaceが"要らない"ことに気付くまで1年かかった
800 名前:デフォルトの名無しさん [2009/09/12(土) 17:07:43 ] Windows で IDLE を起動してただ exit() と打つと Python IDLE "The program is still running! Do you want to kill it? っていうダイアログボックスがでてくるんだけどこれはバグ? Windows Vista Business 上で Python 2.5, 2.6, 3.1 で確認しました
801 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:30:00 ] ばかじゃないのおまえ
802 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:54:01 ] >>792 x 半可通が多数決で正しい答を出す o 半可通が多数決で出した答を正しいと思い込む
803 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:56:27 ] >>792 の意図するところはこっちだろう o 半可通が多数決で「正しい」答を出す
804 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:56:50 ] 何をもってしてバグとするんだ?
805 名前:デフォルトの名無しさん [2009/09/12(土) 20:04:53 ] print __builtins__ の結果と import __main__ print __main__.__builtins__ の結果が違うのはなぜでしょうか? たとえば __builtins__.__dict__ はありますが __main__.__builtins__.__dict__ はありません
806 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 20:20:47 ] >>805 処理系のソースコード調べて考えろ。
807 名前:デフォルトの名無しさん [2009/09/12(土) 20:32:48 ] >>806 アドバイスありがとうございます CPythonのコードはまだ読んでいませんがIDLEのコードを読んでいます。 lib\idlelib\AutoComple.py の中に import __main__ 中略 namespace = __main__.__dict__.copy() namespace.update(__main__.__builtins__.__dict__) というコードがあって、__main__.__builtins__.__dict__ の意味が分からず悩んでいます。
808 名前:805=807 [2009/09/12(土) 20:52:19 ] >>806 たびたびすみません,原因が分かりました. EclipseのPyDevで開発しているのですが, デバッグモードで動かすと __builtins__ は dict です. 通常モードで動かすと __builtins__ は module です. デバッグモードではこのような違いが随所にあったのが原因でした. なお,PyDev のソースを読んだところたしかに pydevd.py で そのような違いが表れていることが分かりました. eclipse-pydev.sourcearchive.com/documentation/1.0.3-1ubuntu1/pydevd_8py-source.html
809 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 21:19:57 ] なんかあさってだな
810 名前:805=807 mailto:sage [2009/09/12(土) 21:50:14 ] >>809 スレを汚してしまってすみませんでした
811 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 22:05:33 ] そういう意味ではない
812 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 07:39:27 ] python2.6でpy2exeを使いmechanizeをimportしたスクリプトをexe化したいのですが なにやら色んな物がないといわれます。で色んなもを入れたり、パス変更したりして 対応したのですが dummy.Processというモジュールだけ見つかりません。 (python2.6/Lib/multipurocessingの中にprocess.pyがあったので/Lib/dummy/process.py と置いてみましたがダメでした) easy_installを試しましたがダメでした。 対処法もしくはdummy.Processがどこにあるかわかる方いますか?
813 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 08:09:46 ] /Lib/dummy/process.py -> /Lib/dummy/Process.py
814 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 08:17:23 ] from multiprocessing.dummy import Process
815 名前:812 mailto:sage [2009/09/13(日) 09:27:34 ] >>813 それでやってみましたがダメでした >>814 自作スクリプト内ではdummy.processをimportしておらず、mechanize内でもimportされていなかったので どのスクリプトのimportをそのように書き換えるのかわかりません で、なぜかLib/multiprocessing/dummy/processとするとdummy.processは通りました しかし、また新たにmultiprocessingが必要(?)でて easy_installすると こんどはmultiprocessing._mmap25とwin32processが必要といわれ。。。 なんだかきりがないように感じられたので諦めます すいませんでした
816 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 14:03:24 ] なんでPythonはRubyの文法を盗んでるのでしょうか
817 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 14:04:32 ] 具体例を挙げてください。
818 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:00:45 ] defなんてそうだよね
819 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:02:40 ] Rubyのが先に世に出たのに後からでたPythonが元祖語ってるという皮肉
820 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:11:03 ] ttp://ja.wikipedia.org/wiki/Python 登場時期 1990年 ttp://ja.wikipedia.org/wiki/Ruby 登場時期 1995年
821 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:11:18 ] >>819 アホか。Pythonの初出が1991年でRubyが1993年だろ。調べてから言え。 それから、RubyとPythonがどっちが優れてるかなんてフレームの元なのでやめたほうがいい。 用途によって使いやすいほうを使えば十分。
822 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:14:59 ] >>818 いまだとBooとかScalaとかあるけど PythonやRubyの前って関数定義にdef使ってるのってないのかな
823 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:32:01 ] Assembly BASIC C ... O Python Q Ruby S ... Z
824 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 15:36:47 ] スルー
825 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:01:43 ] >>822 BASIC
826 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:38:10 ] procedure hogehoge function hogehoge
827 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 18:50:59 ] >>825 DEF FN……懐かしい。
828 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:25:01 ] Python2.5.2ですが、ユニコードって内部的には一律一文字2バイトで表現されていると思って良いのでしょうか? C拡張でユニコードを扱う関数を作りたいんですが、Cでどのようにユニコード文字のバイト区切りを判断すれば良いのか分からなくて。
829 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:41:21 ] ユニコード文字のバイト区切り?
830 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:09:04 ] たぶん、Pythonでの扱い以前にUnicodeの基礎知識が不足していると思われ
831 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:15:39 ] UnicodeとUTF-8の違いは? pc12.2ch.net/test/read.cgi/tech/1177930957/
832 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:22:32 ] 欠けている部分があるので分からないわけですが、 基本知識はあると思ってるのですが... そもそもUTF-8なんて話してません、ユニコードそのものの話です。 pythonにおいてunicode()で生成したユニコードのインスタンスをCレベルで操作したいという話です。 初期のUnicodeが16ビット固定長だった事は知っています。 しかし現在は21ビットにまで拡張されています。 ということは16ビットでは不足するケースがあるわけで、 原理的に固定長決め打ちというわけにはいかないはずです。 また、pythonのレベルからはunicode文字列の実バイト数を知るメソッドが見付けられませんでした。
833 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:23:50 ] あ、>>832 は、コードポイントをそのまま二進数で表現していると推測しています。
834 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:28:16 ] また、BMPだけならば16ビット固定でも良いのでしょうが、 Pythonのunicodeobject.hやunicodectype.cには UCS2、UCS4という文字列が両方とも含まれているので、 16ビット固定なのか32ビット固定なのか良く分かりません。
835 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:30:07 ] 2バイト固定や4バイト固定と知っているならそうと、どちらかなら判別方法を教えてくれればいいのに、わざわざUTF-8を持ち出して混乱させようとするなんて、ほんとににちゃんねるってのは根性悪いですね。 さようなら。
836 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 12:34:52 ] さようなら
837 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:10:56 ] >>> u=u'日本語' >>> u u'\u65e5\u672c\u8a9e' >>> s=u.str() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'unicode' object has no attribute 'str' >>> s=str(u) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) >>> l=u.split() >>> l [u'\u65e5\u672c\u8a9e'] >>> l=u.split(u'') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: empty separator uを s='\x65\xe5\x67\x2c\x8a\x9e' または l=[0x65,0xe5,0x67,0x2c,0x8a,0x9e] というバイト列にしたいのですが どのような方法があるでしょうか?
838 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:16:32 ] >>> u=u'日本語' >>> u u'\u65e5\u672c\u8a9e' >>> l = [] >>> for i in u: ... n = ord(i) ... l.extend((n >> 8, n & 0xff)) ... >>> l [101, 229, 103, 44, 138, 158] >>> map(hex, l) ['0x65', '0xe5', '0x67', '0x2c', '0x8a', '0x9e']
839 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:26:59 ] >>834 len(u'\U00010000')
840 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:49:25 ] >>838 thx! >>> u=u'日本語' >>> map(hex, reduce(lambda x, y: x + [ord(y) >> 8, ord(y) & 0xff], u, [])) ['0x65', '0xe5', '0x67', '0x2c', '0x8a', '0x9e']
841 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:51:27 ] おいおい。 sys.setdefaultencoding()で文字コードを再設定してやるのが先だろ? むちゃくちゃやってやがるな……。
842 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 13:55:33 ] >>828
843 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 15:54:14 ] もう手遅れかもしれんが、Pythonとunicodeについて。 Pythonのビルドオプションで、unicodeはUTF-16とUCS4が選択できる。 デフォルトではUTF-16になっていて、これはWindowsでUnicodeファイル名を そのまま扱えたり、.NET や JVM のUTF-16文字列と互換性があったりと、 相互運用性が求められるときに便利。 でも、一文字を1カウントで扱いたいという要求もよくあり、 .NET/JVM/WindowsAPI などとの 相互運用性が求められない分野ではUCS4が使われることもある。 たとえばFedoraやUbuntuなんかのPythonはUCS4でビルドされている。
844 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 20:02:10 ] import sys sys.argv.append("-n") from idlelib.PyShell import main main() スクリプトの最後にこう書けばIDLEのインターフェイスを 立ち上げることができるんだけど,その時 Tk の メニューを隠すとかできないもんかなぁ. PyShell のコード自体に手を入れることはしたくない.
845 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:22:58 ] しかし、ほんとユニコードってうんこ仕様だな。 まさに誰得だよ、これ。
846 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 22:32:35 ] >>845 まあ欠点も色々あるが、結局Unicodeほど便利な文字コードも無いからな。 特にWebアプリはUTF-8で統一してしまうのが一番簡単。
847 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:08:02 ] UTF-8はBOMをつけてはいけないという仕様にしてくれてれば殆ど困らなかったのになぁ。
848 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:26:21 ] むしろ日本人ならBOMに理解を示そうよ。 一番BOMの恩恵受けるのは日本なんだし。
849 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:42:04 ] UTF-16ならBELEあるからBOMの必要性がわかるが、 なんでUTF-8にBOMが必要なんだ? いやとあるスレで、SJISやEUCテキストとの識別を容易にするために BOM付きUTF-8を提案したのは俺だったりするのだが。
850 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:52:04 ] BOMはトラブルの元って認識なんだが。
851 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:12:02 ] Pythonやっぱつかえねーなー
852 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:20:26 ] BOMはPython関係ねー
853 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:37:51 ] やっぱRubyだなー
854 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:38:04 ] UTF-8でソース書くときは いつも付けてるが。
855 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:45:08 ] >>850 BOM のせいで shebang がどうさしないとか
856 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:49:52 ] PythonやPerl、Lispはやってて面白いし使える言語だがRubyだけは使いたくないな 存在価値も無いし
857 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 02:53:36 ] Rubyしかありえねえだろ。日本だぞここは
858 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 03:19:11 ] 俺にとって四国は海外なので無問題。
859 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 03:20:32 ] 四国と何の関係があるの?
860 名前:858 mailto:sage [2009/09/15(火) 04:05:24 ] 松江って四国にあると勘違いしちゃった。テヘ
861 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 05:39:33 ] 松山と間違えたわけか
862 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 07:48:27 ] >>843 ありがとうございます、助かります。 ヘッダやライブラリの何かの変数でどちらか判定できそうかと思ったんですが、 そこまでは分かりませんでした。 でも、debian sid x86_64ですが、UCS2っぽいです。 UCS2だとwchar_tを使っているみたいなのでなんとかなりそうです。 ctypes.c_wchar_pも使えそう。
863 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 08:12:56 ] withステートメントの意義が分からない
864 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 08:36:39 ] スレッドの同期オブジェクトをwithで使えるクラスを書いておくと、めーっちゃ便利。 def something(self): 通常の処理 with SynqObj(self.lock): クリティカルセクションな作業 通常の処理
865 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 09:12:14 ] >>862 関係ないかもしれないけど gcc で wchar_t って UCS-4 相当というか4バイトじゃなかったっけ?
866 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 10:39:39 ] >>862 pyconfig.hに Py_UNICODE_SIZEってのがある
867 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 10:48:49 ] >>860-861 中国はパスポートが必要
868 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 10:50:14 ] >>864 thx!
869 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 11:40:05 ] あれ、with lock: ... って書けるよね。threadingでもthreadでも
870 名前:デフォルトの名無しさん [2009/09/15(火) 12:00:28 ] with 構文の as は何のため?
871 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 12:33:02 ] reStructuredTextをはがしてPlain Textにするモジュールってありますか?
872 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 13:18:30 ] >>869 ああ、864は複数のスレッドの呼び分けをログで確認するためにラッパーを介しているだけだから。キニスンナ。 普通はlockオブジェクトを直にwith呼び出ししてかまわない。 >>870 Python 2.6のリリースノート読め!
873 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 13:44:36 ] >>871 ttp://stackoverflow.com/questions/1192632/how-to-convert-restructuredtext-to-plain-text
874 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 14:08:01 ] >>873 サンキュー。 でもドキュメント無いからソースよめってことね…。
875 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 14:29:11 ] shebangのこと忘れてたよ
876 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 14:38:22 ] rst2xxx -> xxx2txt みたいな経路でいけないかな?
877 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 16:39:11 ] Pyhton3.0以降の言語仕様を日本語で解説してるサイトや書籍ってある? 3.0以降の資料が少なすぎて、勉強がさっぱり進まない やはり英語を覚えるのが先なのか・・・
878 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 17:24:52 ] 腐るほどあるような気が Python3.0でググるよりPython3000のほうが多いかも
879 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 18:29:18 ] オライリーの第3版初めてのPythonの中でちょっとだけ触れられている
880 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 18:37:56 ] >>878 うーん、一部を解説したものしか見つからない できたら3.1までの仕様変更点を全て網羅している 解説が欲しいんだけど
881 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 18:56:31 ] >>880 Python 3.0/3.1のリリースノートを読むのが結局一番早いよ。 Pythonはこの辺とても丁寧。 ところで、 IronPythonに向いた軽量なO/Rマッパーが見当たらなかったので 『100行ちょっとのやる気のないPython製O/Rマッパー』をベースに 実装してみたんだけど、試してみたい人います? 一応、Python/IronPython両用です。
882 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 19:25:58 ] >>877 読んでみたけど ttp://docs.python.org/3.1/whatsnew/3.0.html ttp://docs.python.org/3.1/whatsnew/3.1.html これくらいのボリュームなら自動翻訳でもかなり役立つと思うが。 # この先、仕事でプログラムするなら英語は何れ必要となるだろうからガンバレ # 最近の翻訳は中国語から順に整備される傾向があるからな・・・
883 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 19:35:40 ] >>866 確かにありました。 4になっていました。 >>865 sizeofで確認したところ確かに4バイトでした。 pyconfig.hの記述と一致してます。 UCS2って2バイトだと思ってましたが、 実装上はwchar_tで表現するので4バイトになってるってことなんでしょうか。 UCS4は元が4バイトですよね。 とりあえずPythonではunicode一文字は4バイトと思って良いのかな。 ほんとunicodeとその周辺のエンコーディングはよく分かりません。
884 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 19:40:43 ] >>881 柴田さん乙
885 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 19:47:36 ] pyconfig.hはautoconfなんかで出力してんじゃないの
886 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 20:37:03 ] >>883 ucs4を使うかutf-16を使うかはconfigureオプションで指定して、 sizeof(wchar_t) == 4 && ucs4 の場合か、 sizeof(wchar_t) == 2 && utf-16 の場合にのみ wchar_t を使う・・・という仕様だった気がする。 Pythonの拡張モジュールを作るときには、wchar_tを直接使うんじゃなくて、 Py_UNICODE を使う。 docs.python.org/c-api/unicode.html#Py_UNICODE
887 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:00:25 ] >>886 あー、なるほど・・・ とりあえずLinux(gcc)ではi686でもamd64でもwchar_tがあり、 >>865 さんの指摘どおり両方とも4バイトでした。 UCS4の場合にはどちらもwchar_tで4バイトですが、 UCS2(UTF-16)の場合にはwchar_tと不一致なので unsigned shortが使われるようです。 これも両方共2バイトでした。 ということで、Linux(gcc)ではUCS2ならばunsigned shortで2バイト、 UCS4ならばwchar_tで4バイトということですね。 最近のLinuxディストリビューションではUCS4が多いらしいです。 Debian sidでもそうです。 Py_UNICODEを使った方が良いのだと思いますが、 Cで書く部分はできるだけPython独立にしておいて ctypesからそれを利用したいので、 とりあえずwchar_tを使うことにします。 でもimmutableだからなのか、unicodeをそのまま渡して 中身を変更するような事はすぐにはできないっぽいです。 create_unicode_bufferを使うしかなさそうです。
888 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 22:08:01 ] boostPython
889 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:13:28 ] >>881 プププ、クソ本の著者乙(wwWwwwwWWWwwwWwWwww
890 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:15:28 ] >>884 ,889 いや、当の著者の再配布許可が出たところなんだけど。 別に信じないならいいけどさ。
891 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:37:33 ] 884と889は低脳。 みんぱいの人に嫉妬するクソ本作者。
892 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 00:52:06 ] またruby房の嫌がらせか
893 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 09:03:24 ] 大抵の謎の書き込みは >892 で納得できちゃうね
894 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 09:47:25 ] Pythonスレはスルー力が有って良いと思う
895 名前:デフォルトの名無しさん [2009/09/16(水) 10:48:56 ] 何か書こうと思ったんだけど忘れた
896 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 12:09:33 ] 逃げるなよ。
897 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 12:27:59 ] 逃げるが勝ちだな
898 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 12:41:43 ] 逃げちゃだめだ
899 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 18:05:00 ] >>888 ひょっとしてctypesよりboost.pythonの方が良いっていう意味のレスですか? そうでないとしても、それをきっかけにしてboost.pythonも検討してみました。 boost.pythonとしては、まだunicode文字列を引数としてどう受け渡すのか 方式が定まってないっぽいんですが、とりあえずPyObject* opとして受け取って PyUnicode_AS_DATA(op)でconst char*として実際のデータバッファのアドレスを取り出して、 それをwchar_t*にキャストして自作のC++関数などに渡せば良さそうです。 C++ではwchar_t*として扱うPython独立なプログラムとして作成して、 引数を渡すところだけはこの変換をするために一枚かぶせる感じです。 unicodeの実装がwchar_tではない場合には困るんすが、C++だし、 とりあえずテンプレート使っておけば後々それほど困らないでしょうし。 これでunicode文字列をC++の中で書き換えることもできました。 boost.pythonって、ほんとに楽にC++とやりとりできますね。
900 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 18:42:02 ] >>897 働いたら負けだよな。
901 名前:デフォルトの名無しさん mailto:sage [2009/09/16(水) 19:30:48 ] 俺が逃げるまで逃げるなよ
902 名前:デフォルトの名無しさん [2009/09/17(木) 06:49:55 ] はやくにげてえーーーー
903 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 11:18:04 ] boost.python前提になると他の言語からも使えるdllにならない
904 名前:デフォルトの名無しさん [2009/09/17(木) 11:28:50 ] Eclipse で Java 開発環境と mingw による C言語での開発 環境をスタンドアロンで持ち歩いてるんですが, PyDev と Python 実行環境もそんなことができればなぁ と思ってます.Windows 環境です. Windows の Python はレジストリに何か登録しているよう なんで,そういうポータブルなことは難しいでしょうか?
905 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 11:54:05 ] portablepython.com/ 公式からもリンクされてるからそんなに怪しいものでは無いと思う。 公式からのリンク:python.org/download/
906 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:32:24 ] >>903 まずはC++で(Pythonその他から)独立したクラスを作っておけばいいんじゃないですか?
907 名前:デフォルトの名無しさん [2009/09/17(木) 21:24:45 ] unittest.TextTestRunner で複数のテストを次々と実行するトキ, 最初に発生した例外でストップしてほしいんですが,できますか?
908 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 05:57:29 ] emacsのpython-mode.elで、ユニコードリテラル中にエスケープせずに文字を書くのと、 エスケープコードを書くのとで、py-execute-bufferの際に別物にされてしまう。 (素のバイトストリング扱いになるらしい) C-x C-f foo.py #!/usr/bin/python # -*- mode: python-mode; coding: utf-8 -*- print u'あ' == u'\u3042' C-c C-c => False $ python foo.py True どうしたものか。
909 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 08:15:29 ] sys.getdefaultencoding()
910 名前:908 mailto:sage [2009/09/19(土) 04:44:02 ] sys.getdefaultencoding() は環境によらず ascii を返すので原因は違うところにあるようだ。 ちなみに locale.getdefaultlocale() はいつでも ('en_US', 'UTF8') が帰る。 C-c ! で ipython を出しておいて C-c C-cすれば普通にターミナルからやるのと同じ挙動に なったので、それでいいことにしたわ。
911 名前:デフォルトの名無しさん [2009/09/19(土) 09:48:33 ] 循環参照してしまうとそのオブジェクトはプロセスの 終了まで解放されない? class ClassA(object): def __init__(self): import sys sys.stderr.write("ClassA.__init__(...) %s\n" % str(self)) def __del__(self): import sys sys.stderr.write("ClassA.__del__(...) %s\n" % str(self)) class ClassC(object): def __init__(self): import sys sys.stderr.write("ClassC.__init__(...) %s\n" % str(self)) self.a1 = ClassA() self.a2 = ClassA() self.a1.a2 = self.a2 self.a2.a1 = self.a1 def __del__(self): import sys sys.stderr.write("ClassC.__del__(...) %s\n" % str(self)) これで ClassC のインスタンスを作ると, ClassA.__del__ は永遠に呼び出されない. せめてプロセスの終了時には呼び出されると思ってた.
912 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 09:57:26 ] ふうむ,ガベージコレクタが __del__ の 呼び出し順を決定できないからか. そもそもデストラクタがあるのに循環参照が 起きるような設計をするなということだよな.
913 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 10:45:10 ] >>908 C-x C-f foo.py #!/usr/bin/python # -*- mode: python-mode; coding: utf-8 -*- print u'あ' == u'\u3042', hex(ord(u'あ')), u'あ'.encode('utf8') C-c C-c => False (どうなりますか?)
914 名前:908 mailto:sage [2009/09/19(土) 17:52:16 ] >>913 C-c C-c => False 0x20 と出ます。u'あ'.encode('utf8') はエラーも出さずに飲み込まれてしまっているみたい。ちなみに print u'あ’ -> なにも表示されない、 print u'\u3042' -> UnicodeEncodeError: 'ascii' codec can't encode character u'\u3042'... となる。あらかじめC-c ! でipythonのバッファを出しておけばこれらの問題は起きない。
915 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 19:40:27 ] >>911 そういうのって明示的に循環参照削除するメソッド作って呼び出すもんじゃないの? と最近Pythonに興味もったPerl使いが言ってみる。 Perlだと参照を弱める(リファレンスカウント減らす)方法あるけど、 Pythonだと似たような方法有るのかな。
916 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 19:57:07 ] del
917 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 19:58:55 ] boost だと weak_ref とかの弱参照なスマートポインタがあるよな
918 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 20:00:17 ] Pythonにもweak_refあるけど、やっぱり明示的に参照切るほうが多いかな。 weak_refは余計なコストかかるし。
919 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 20:08:20 ] >>915 www.python.jp/doc/2.4/ext/refcounts.html これ、絶対入ってるよね。 (文中の『デフォルトでは入っています』に対するレス)
920 名前:デフォルトの名無しさん mailto:sae [2009/09/19(土) 22:27:55 ] infopile思ったより本格的だった 朝から使ってたけど普通に常用メーラで行けそう
921 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 22:40:02 ] C++は元々が自前でメモリ管理しなきゃいけないから余計にああいうの欲しくなるけど 最低限で済むPythonではやはり最低限で良いと思うやね
922 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 22:54:52 ] >>920 宣伝乙
923 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 23:47:44 ] >>920 Windowsだけなんだっけ?
924 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 23:35:03 ] >>> L=[] >>> L[:] [] >>> L[:]=[1,2,3] >>> L [1, 2, 3] リストの初期化がなんか違和感が… 納得できん
925 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 23:43:30 ] 2つのクラス同士でクラスオブジェクト同士を相互参照したい場合、 class Topic: child = Reply class Reply: parent = Topic なんて書いてたら、当然2行目で未定義識別子の参照でエラーになる。 これって、2つの定義を相互参照なしに定義した後で、classmethodを明示的に呼び出して 動的に結びつけるしか方法がないよね? 用途としては自作の軽量ORMライブラリを作ってるところで、 オブジェクト化したテーブル同士の親子関係を表現しようとしている。 で、例えばTopicから連結されてるReplyのインスタンスが欲しいので何らかの形で事前に教えておく必要がある、と。
926 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 23:51:30 ] class Topic: pass class Reply: pass Topic.child = Reply Reply.parent = Topic
927 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 00:01:17 ] >>924 それ、初期化じゃなくて代入だから・・・
928 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 00:38:33 ] ?
929 名前:デフォルトの名無しさん [2009/09/21(月) 01:38:05 ] >>924 の思考に違和感が
930 名前:デフォルトの名無しさん [2009/09/21(月) 01:40:50 ] class Topic: children = [] class Reply: parent = Topic Topic.children.append(Reply)
931 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 09:21:42 ] >>924 入門書嫁。
932 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 09:34:48 ] >>924 は何に対して違和感を感じているんだろう 配列が伸び縮みすることになのか 要素の範囲を指定して代入することになのか L[:] ってなんかきんもー、なのか
933 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 10:42:30 ] >>> l=[9,8,7,6] >>> l [9, 8, 7, 6] <- 普通 >>> l[1:]=[3,4,5] >>> l [9, 3, 4, 5] <- 普通 >>> l[1:]=[2,1] >>> l [9, 2, 1] <- きもい >>> l[:]=0 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only assign an iterable <- 微妙 >>> l[:]=[0,0] >>> l [0, 0] <- きもい
934 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 10:47:29 ] [1:]=の結果に違和感覚えないのに[:]の結果に違和感覚える理由が解らん
935 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 11:08:09 ] >>933 スライスの代入で左辺と右辺のリストの要素数が 一致していなくても構わない(右辺にあわせて伸び縮みする)のが気持ち悪いってこと? だったらリンクリストでも勉強すれば違和感なくなるんじゃないかね
936 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 13:53:54 ] >>934 >>> l[1:]=[2,1] >>> l [9, 2, 1] <- きもい
937 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 14:02:18 ] だから入門書読めよ低脳。
938 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 14:14:12 ] バカだなあ。
939 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 14:31:56 ] つーか、それがキモイならスライスの意味ないだろとw
940 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:05:35 ] >>> l[1:]=[3,4,5] >>> l [9, 3, 4, 5] <- 普通 >>> l[1:]=[2,1] >>> l [9, 2, 1] <- きもい このきもいと普通の違いがわからん 要素が1個減ったらきもい?何か見落としてるんだろうか・・・
941 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:42:29 ] C言語の配列かなんかと勘違いしてるんじゃね? 抽象度の高い操作を理解できないとか
942 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 18:08:31 ] スライスの代入ってあんまりやんないからどうでもいいや
943 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 20:57:09 ] python の配列って中身はリストなんですか? と思ったら L=[] で L に代入してるな orz
944 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 21:06:25 ] 変数名がL,M,Nではじまる場合にはリストなんだよ。
945 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 21:12:52 ] >>941 あぁ。3要素のときはreplaceに見えるからきもくないのか よくわかったありがとう
946 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 21:13:33 ] Pythonのお勉強 Part35 pc12.2ch.net/test/read.cgi/tech/1253535109/
947 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 21:30:13 ] >>943 質問の意味がよくわからないが、 Pythonのリストはメモリ上の連続領域を利用した配列型のリスト (C++のstd::vectorやJavaのArrayListの類) いわゆる連結リストではないので途中に挿入する操作には弱い。
948 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 23:45:44 ] >>942 直感的に思えないから、俺もあまり使わないな。 冗長でも、新しいリストを作ってしまうな
949 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 02:10:54 ] >>948 >>947 の言う通りなら新しく作りなおしてもそんなに速度は変わらなさそうですね
950 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:35:41 ] 実装は連続メモリ型かも知れんが 表向きリストのような動作をするように設計されてんだろうな
951 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 12:59:51 ] from VideoCapture import Device cam = Device() cam.saveSnapshot('image.jpg')