- 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/
- 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 ]
- はやくにげてえーーーー
|

|