[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 21:00 / Filesize : 205 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part23



1 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:23:39 ]
Python オフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
FrontPage - Pythonのお勉強
python.rdy.jp/
前スレ
pc11.2ch.net/test/read.cgi/tech/1196426978/

◆関連スレッド

Microsoft IronPython 1.0
pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
pc11.2ch.net/test/read.cgi/tech/1153585095/
2ch検索: [python]
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python

◆関連サイト

Python ドキュメント
www.python.jp/doc/release/
参考サイト - Pythonのお勉強
python.rdy.jp/wiki.cgi?page=%BB%B2%B9%CD%A5%B5%A5%A4%A5%C8

以上

99 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:36:16 ]
setup.pyの中でversionを設定できますが、
この数値を普通はCVSとどうやって連携とるものなんでしょうか。
setup.pyのversionを手動で書き換えて、
同じ数字でCVSにタグをつけるもんですか?
だとすると、間違えたりする可能性がありそうで嫌だな、と。

setup.pyのversionとCVSのリリースタグの、
どっちかを変更すると、もう一方にも自動で反映されるようにしたいんですが、
どうしたらいいんでしょうか。

100 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:30:52 ]
>>99
普通はファイルのリビジョンとパッケージのバージョンは別だと思うんだけど。

101 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:56:25 ]
みなさんIDE何使ってますか?
素直にIDLE?

102 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:01:12 ]
xyzzy

103 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:16:18 ]
PyScripter


104 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:57:09 ]
>>99
setup.pyはPythonスクリプトだから、CVSのリリースタグをsetup.pyに埋め込んで、それをpythonで処理すればいい。
といってもCVSはよく知らんのだけど例えば
__release__ = '$Release: 1.2.3 $' # こんなリリースタグが埋め込めたとして
m = re.search(r'[.¥d]+', __release__)
version = m.group(0)
というのはどうでしょうか。

105 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:59:24 ]
Eclipse+PyDev

106 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:15:26 ]
pyplってcheese shopと同じようなもの?
今のPHP云々の中で「Perlで言うCPAN相当な再利用可能ライブラリの集積所」、
みたいな文脈で名前が挙がったんだけど、日本語の情報が少なくて…。

107 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:26:07 ]
昔 pypi 今 cheese shop



108 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:34:32 ]
変数名を取得する方法ってありますか?
>>> foo = Bar()
>>> foo.get_var_name()
'foo'
>>> baz = Bar()
>>> baz.get_var_name()
'baz'
という動作を期待しています。
newやreprモジュールを調べたのですが、クラス名、モジュール名は取得できる
ものの変数名の取得がとんと考えつきません。
ご教示いただければ幸いです。

109 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:53:22 ]
>>107
ありがとう、そゆことなんだ。
言及してた人がPython使いじゃないから、古い名前しか知らなかったのか。
106でPYPLと打ってしまってて、検索に失敗していたのは許して欲しい…。

110 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:08:43 ]
>>108
無理
できるのは、locals() でローカル変数の一覧を、globals() でグローバル変数の一覧をとってくるぐらい。
そんなことを必要とするのはたぶん、「ほんとうにやりたいこと」に対する解決方法が間違ってると思うから、まず「ほんとうにやりたいこと」を書いてみるといいよ。

111 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:18:37 ]
>>108
class Foo:
    def get_var_name(self):
        for key, value in globals().items():
            if id(value) == id(self):
                return key
        return None

foo = Foo()
print foo.get_var_name()

この質問、ちょくちょく出るけど
Python で「変数名を取得したい」と思ったら十中八九「設計ミス」だと思う。



112 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:20:14 ]
うは、かぶったw
結婚してください。
ヾ(o゚ω゚o)ノ"プニプニ!

113 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:26:57 ]
>111
複数の変数が同じオブジェクトを指してるときはうまく動作しないね。

まあ、>110,111の言うとおり設計見直した方がいいと思う。

114 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 03:57:58 ]
import traceback
import re

class Foo:
  def get_var_name(self):
    stack = traceback.extract_stack(limit=2)
    return re.search(r"([_a-zA-Z][_a-zA-Z0-9]+)\.get_var_name", stack[0][3]).group(1)

foo = Foo()
print foo.get_var_name()

115 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 04:07:27 ]
>>111
>>>foo = Bar()
>>>foo._name = 'foo'
>>>foo._name
'foo'

116 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 04:51:28 ]
>>110-114 本当にありがとうございます。
> 「ほんとうにやりたいこと」
というのはほんとうに純粋な興味からです。しかし皆さんのお話をうかがうに、
元々こんなことをやることが無理筋なのだと理解しました。
>>113の方が仰っているのを理解する意味で、
foo = Foo()
print id(foo), foo.get_var_name()
bar = Foo()
print id(bar), bar.get_var_name()
bar = foo
print id(foo), foo.get_var_name()
print id(bar), bar.get_var_name()
としてそれぞれ確認を行いました。
いずれにしても、globals()やid, tracebackの存在を知ることができて
ありがたいです。

>>115 ワロタ。。のですが、つまり原理的にこうするしかないということですね。


117 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 06:57:19 ]
呼び出し元のフレームから.f_code.co_codeと.f_lasti辺りから解析すれば変数名は取得できるんじゃないの?
式になると当然無理だけど
まあ変数名取得してどうすんのという気はする



118 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:01:39 ]
変数名がどうして必要になるのかが毎度気になる

119 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:25:51 ]
>>70
Foxit Reader 使ってみたら PDF サクサク動いて感動した。d

120 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:47:29 ]
cheese shopを未だにpypiと言う人にPythonを語る資格はないと思う。

121 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:48:48 ]
たとえば、obj._name で常に変数名が取れたとする。

しかし、これは、'obj' と常に等しい。したがって変数名を取る仕組みは不要。

122 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:55:42 ]
>>> foo = Bar()
>>> foo._name = 'foo'
>>> foo._name
'foo'
>>> bar = foo
>>> bar._name
'foo'
>>> bar._name = 'bar'
>>> foo._name
'bar'

123 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:59:11 ]
もし変数名が取得できたらデバッグとかテストとか楽になりそうだと思うけどな

124 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:01:02 ]
ttp://d.hatena.ne.jp/chrono-meter/20080131/p1
書いては見たけど使いどころ思いつかん

125 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:28:17 ]
Pythonの変数はコンテナじゃなくてリファレンスだから、
いろいろ変なことが起こる。

少なくともCPythonでは、
a = 2
b = 3 - 1
とすると、aとbは同じオブジェクトになる(a is bがTrueになる)。

文字列もインターンされたりされなかったりするから、
s = "ab"
t = "a" + "b"
だとs is t。
u = "a/b"
v = "a" + "/" + "b"
だとu is not v。

そーいうのを知ったうえでそれでもやるなら、どうぞどうぞ、という感じ。

126 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:34:12 ]
>>123
>>108みたいな方法が出来ないというのであって、デバッグとかテストのときに
変数名とその値の一覧を取得するのはlocals(), globals()でおk

127 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:35:00 ]
>>> "ab" is "a"+"b"
True
>>> "abc" is "a"+"b"+"c"
True
>>> "a/c" is "a"+"/"+"c"
False

なんだコレ?、バグじゃね?w



128 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:40:59 ]
>>> 200000 is 100000 + 100000
False
>>> 20000 is 10000 + 10000
False
>>> 2000 is 1000 + 1000
False
>>> 200 is 100 + 100
True
>>> 20 is 10 + 10
True
>>> 2 is 1 + 1
True

テラ意味不明w笑いが止まらんw

129 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:41:02 ]
is はポインタ比較。等値比較には == を使え

130 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:42:52 ]
何が?
文字列や整数のようなオブジェクトがimmutableになっていて、VMが勝手に使いまわしてくれるのは大変ありがたいんだが。
再利用基準はVM依存だから、非明示的に作られた同値オブジェクトが同一だったり非同一だったりするのは当たり前。

131 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:54:41 ]
>>125
> Pythonの変数はコンテナじゃなくてリファレンス
が真理だと思う。
クラスの中で self.get_var_name() とかして自分の名前を知りたいのかもしれないけど、
参照元が1つとは限らんし、その名前のコンテキストもわからんし、使いようがないような。


132 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:04:26 ]
>再利用基準はVM依存だから、非明示的に作られた同値オブジェクトが同一だったり非同一だったりするのは当たり前。

immutable なのに再利用されないものがある理由が分からん


133 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:20:41 ]
>>132
既にVM内に同値オブジェクトが存在するかどうか探す手間がオブジェクトの生成コストを超えるなら、再利用しない方がマシ。

134 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:26:55 ]
>>91
>>98
ありがとう。ほんとうにありがとう。
こういう人たちがいるのでPython大好きだ

135 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:47:57 ]
weakref.ref つかうときって、普通に

hoge_ref = weakref.ref(hoge)

ってやってる?それとも hoge が None である場合を考慮して

def get_hoge(self):
 return self.__hoge_ref and self.__hoge_ref()
def set_hoge(self, v):
 self.__hoge_ref = v and weakref.ref(v)
hoge = property(get_hoge, set_hoge)

みたいにしてる?


136 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:38:09 ]
>>127は、識別子として有効な文字列ならinternされるって実装だから起こる現象。


137 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 05:00:40 ]
>>120
pypi.python.org/pypi
まずはここのサイトの管理人に文句を言ってくれないかwww



138 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:21:55 ]
自分の間違いを他人のせいにする奴は生きている資格がないので今すぐ死ね。

139 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:15:36 ]
setattr(self, "a", "b")
self.a = "b"
これ同じ?どっちが早い?

140 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 11:47:57 ]
>>138
他人に'死ね'なんていうもんじゃないよ!!
137がPythonを使うのを止めれば済むことじゃないか!!!

141 名前:デフォルトの名無しさん [2008/02/01(金) 17:03:02 ]
ファイルとかパスを正規表現を使って探せる関数はありますか?
globはワイルドカードしか使えません><

142 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:41:03 ]
>>141
re.match

143 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:48:33 ]
re.match と os.listdir を組み合わせたのが欲しいんだろう

144 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:24:07 ]
>>141
無理
MicrosoftがWinFSを載せたら出来たかもしれないが…

145 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:34:53 ]
前スレでurllibでwikipediaのページを取ってこれないって言った人に対して
ライブラリのせいにすんな、死ねよって書いてた人だろ? >>138


146 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:52:04 ]
145の頭の中にはオレとアイツの二人しかいないらしい。
これもゆとり教育の悪影響だろうか。

147 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:03:10 ]
>>145
urllibでwikipediaのページを取れましたか?





148 名前:デフォルトの名無しさん [2008/02/01(金) 22:18:39 ]
pdbつかってるんですが変数に変化があったときブレイクしてくれるようなコマンドありますか?
gdbのwatchみたいなやつ

149 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:23:00 ]
>>147
urllibのURLopenerでUserAgent指定すればいいんじゃね?

150 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:40:29 ]
最近httplibそのまま使ったほうがいい気がして来た

151 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:57:28 ]
urllib2

152 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:25:32 ]
Python3.0だとurllibがurllib2相当になったりしないんだろうか

153 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:07:30 ]
もっと便利で高機能なurllib3が追加される

154 名前:148 mailto:sage [2008/02/02(土) 12:47:12 ]
yoyoyo ねーのかyo

155 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:29:02 ]
ggrks

156 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:27:08 ]
グーグル、土日休みだろ。

157 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:32:31 ]
それ社員だけ



158 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:05:55 ]
PythonでCGIプログラムを書いてるんですが、sessionを管理してくれるライブラリはありませんか。

159 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:34:03 ]
PerlとRubyには存在するがPythonは自己でファイルを作って
管理していくしか現状ないみたい。
他はDjangoフレームワークつかうとか

160 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:06:57 ]
>>158
そういう用途ならRubyが向いてるよ

161 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:31:43 ]
その程度で躓くようなヤツはRubyを使った方がいいよ。
絶対。断じて。
Rails使って遅さにハマれば勉強になるよ。

162 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:00:36 ]
Visual C++ 2008で作成したdllをctypesで読み込もうとしてるんですが関数がないというエラーが出ます。

test.dllで定義した関数
const char* test() { return "test"; }

test.py
from ctypes import windll
lib = windll.LoadLibrary("test.dll")
lib.test

function 'test' not found

dllのロードはできています。何か考えられる原因はありますか?

163 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:09:11 ]
exportしてるのか?


164 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:16:25 ]
exportってVC++の方の話ですか?

165 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:21:04 ]
dumpbin.exe /exports test.dll で確認してみたら


166 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:29:42 ]
VC++でdll作るときはexportっての必要なんですね。
やってなかったので調べてみます。


167 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:59:26 ]
定時実行をスクリプト内でなんとかしたかったら
どんなのが楽ですか?



168 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:04:24 ]
>>159
うそーん。session管理くらい標準ライブラリで用意してほしいなあ。

>>160
>そういう用途ならRubyが向いてるよ
そういう用途ってどんな用途?PythonはCGIには向いてないってこと?

>>161
>その程度で躓くようなヤツはRubyを使った方がいいよ。
>絶対。断じて。
なんで逆切れしてんの?
その程度で逆切れするようなヤツは引きこもってた方がいいよ。
絶対。断じて。


169 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:04:55 ]
>167
「なんとか」をもーすこし具体的に頼む

170 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:05:53 ]
かんとか

171 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:13:39 ]
>>168
>その程度で逆切れするようなヤツは引きこもってた方がいいよ。
だからこのスレに引きこもってるんだろw
ヒッキー相手にマジレスカコワルイ

172 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:15:12 ]
おまら両方うるさいから、rubyスレでやれよ。
phpの件で荒れてるから、少しぐらい騒いでも大丈夫やろ。

173 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:41:48 ]
>>167
定時実行って時刻指定?インターバル指定?

import time, threading

def proc():
  while True:
    time.sleep(1)
    print 'aiueo'

threading.Thread(target=proc).start()


174 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:50:52 ]
>173

わかってると思うけど、
それだとprint文の実行時間により結果が不定になるので、
time.sleepの直前で次にwakeup timeを計算したほうがよい気がする。


175 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 09:21:25 ]
定時実行ってふつうは外部でcronを使うよね

176 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 10:18:26 ]
Timerとか使えばよくね?

177 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:00:51 ]
ctypesでCで作成した関数に構造体を渡す方法なんですが

struct user {
int id;
char name[20];
double average;
};
__declspec(dllexport) void __stdcall print_user(struct user u)
{
printf("id:%d\n", u.id);
printf("name:%s\n", u.name);
printf("average:%f\n", u.average);
}

print_userに構造体を渡すときにpython側で

from ctypes import *
lib = windll.LoadLibrary("test.dll")
class User(Structure):
_fields_ = [("no",c_int), ("name",c_char_p), ("average",c_double)]
u1 = User(10, "abcde", 83.5)
lib.print_user(u1)

とやると
ValueError: Procedure probably called with not enough arguments (16 bytes missing)
というエラーが出ます。
何が原因なのでしょうorz



178 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:21:54 ]
Cのuser構造体が計4+20+4=28バイトとかなのに
Pythonのu1は4+4+4=12バイト
なので16バイト足りないって怒られるということじゃない?
("name", c_char_p * 20) とかしたらどうだろう

179 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:24:00 ]
ああ間違えた。c_char * 20 かな

180 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:45:18 ]
>>168
161が本当にキレてるかどうかはわからないけど(俺は君の勘違いだと思う)、
逆ギレという言葉を選ぶということは、君は自分がキレてる自覚あるわけだよね。
要するに、君みたいにいきなりキレちゃう痛い人には、それなりに刺激のあるレスが返ってくるってことだよ。
あきらめな。

181 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:55:16 ]
煽るなw
半年ROMってろで済むだろw

182 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:33:40 ]
>>178
なるほど!ありがとう

183 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:23:28 ]
そういうとこが面倒なのでpyrexでラッパーを作ってしまう俺

184 名前:148 mailto:sage [2008/02/03(日) 17:42:02 ]
申し訳ございません
ぐぐってもみつかりません
教えていただけませんでしょうか
(´Д`;)、 コノトオリデス
   ノノZ乙

185 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:44:12 ]
ま、そんな時もあるさ
明日は違うさ

186 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:36:00 ]
pdb.doc pdb.py bdb.py あたりを読んでみれば?

187 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 04:14:52 ]
>>180
161本人乙
おまえの必死さは伝わった



188 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 08:51:32 ]
必死な人ほど必死の一語で切り抜けようとするらしいよ。

189 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 09:36:37 ]
オレ161だけど180とは別人だ。
オレとオマエの二人しかいない寂しい頭のキミに、
何を言っても無駄だろうけどね。

190 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:39:02 ]
つーかいつまでも反応する奴みんなうぜぇ

191 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:09:15 ]
>>161=180=188=189
1人4役乙
ひとりで4人分演じられる頭があれば、そりゃあ寂しくないだろうよ

192 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:19:38 ]
>>191

自分で証明してどうする(www
>オレとオマエの二人しかいない寂しい頭のキミに



193 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:54:06 ]
ここまで全部俺の自演

194 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 06:03:05 ]
>>192
その反応が君一人で頑張ってたことの証明になってるよ。

195 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 09:39:32 ]
>>194

>要するに、君みたいにいきなりキレちゃう痛い人には、それなりに刺激のあるレスが返ってくるってことだよ。

>オレとオマエの二人しかいない寂しい頭のキミに、
>何を言っても無駄だろうけどね。


196 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:12:19 ]
自分の脳内でしか意味を為さない引用は勘弁。
こじつけ設定くらい考えてから切り返してね。

197 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:27:53 ]
調子に乗って python でゲーム作ったけど、内容が肥大化するにつれ
実行速度がかなり厳しくなってきた俺が来ましたよ

参考までに
超基本的な事でRGBデータをどう持つのが一番早いか計測した結果。
早い順に
--------------
RGB = (R, G, B)
--------------
RGB = [R, G, B]
--------------
RGB = RGB_CLASS()
R, G, B = RGB.R, RGB.G, RGB.B
--------------
RGB = {"R":R, "G":G, "B":B}
R, G, B = RGB["R"], RGB["G"], RGB["B"]

クラスと辞書はどっちが早かったか覚えてないけど、ほとんど同じだった気がする



198 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:30:15 ]
>>197
つpsyco

199 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:30:36 ]
RGB = R << 16 | G << 8 | B
R, G, B = (RGB>>16)&255, (RGB>>8)&255, RGB&255
てのも考えたけど、各要素を取り出すのに必要な式なり関数なりを Python
で書いた時のコストを考えると、結局 RGB を独立して保持した方が早いという結論に。








[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef