【書き方は】Pythonのお勉強 Part19【一通り】

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/08/15(水) 12:47:53
日本のPloneコミュニティが一番の問題.
953デフォルトの名無しさん:2007/08/15(水) 12:57:28
python って = 演算子のオーバーロードできないんですか?
954デフォルトの名無しさん:2007/08/15(水) 13:00:29
>>952
DjangoとかTGとか、Web関係全般だろ
955デフォルトの名無しさん:2007/08/15(水) 13:02:04
>>954
他を巻き込まないでよ、Ploneコミュニティの中の人。
956デフォルトの名無しさん:2007/08/15(水) 15:57:54
>953

できないんじゃないかな。==じゃないよね?
957デフォルトの名無しさん:2007/08/15(水) 16:08:10
アトリビュートへの代入ならオーバーライドできる。
958デフォルトの名無しさん:2007/08/15(水) 16:52:29
pythonで
ttp://ist.ksc.kwansei.ac.jp/~miwa/img/ComplexNetwork.gif
にあるようなネットワーク(グラフ)構造を描画したいのですが該当するライブラリご存知ないでしょうか?
959デフォルトの名無しさん:2007/08/15(水) 17:05:24
パイソンチャレンジのレベル一を見て、
何をすればいいかわからない俺は無能ですか?
960デフォルトの名無しさん:2007/08/15(水) 17:31:03
>>959です

ちょっと調べてきたが、
Python使わずにとこうとしている奴らがいるな
ばかだなあ
961デフォルトの名無しさん:2007/08/15(水) 17:41:53
>>595
間違いなく無能。
962デフォルトの名無しさん:2007/08/15(水) 17:43:51
Pythonの高速化ツールって、今のところPsycoぐらいなの?
ソースコードに手を加えずに速くなれば一番理想的なんだけど・・・・exeなりなんなりの実行ファイルにしてくれるやつって、あれは速くなるの?
963デフォルトの名無しさん:2007/08/15(水) 18:18:59
>>956
やっぱダメですかー
文字列クラスのサブクラスをつくりたいんだけど、

class enhancedString(...):

... に string って書いてもモチロンダメだし、
みなさんどうやってるんだろう。

まぁメンバに文字列持たせてやればある程度できた
んですが、

es = enhancedString()
es = "a"

ってのができない。。。(文字列型 'a' になっちゃう)
964デフォルトの名無しさん:2007/08/15(水) 18:25:55
ルパンは963から大切なものを奪ってゆきました。
965デフォルトの名無しさん:2007/08/15(水) 18:33:56
わざわざサブクラスにしなくてもいいんでないの
966デフォルトの名無しさん:2007/08/15(水) 18:35:17
ふつー classの先頭は大文字じゃないか、という問題はさておき

es = enhancedString("a")

じゃね?



967デフォルトの名無しさん:2007/08/15(水) 18:37:41
んなことわかってる。真面目な回答を希望する。
968デフォルトの名無しさん:2007/08/15(水) 18:39:33
>>962
Pythonのコードを高速化する方法
1. 効率のよいコードを書く
2. psyco で最適化しやすいコードを書く
3. C で書く
969デフォルトの名無しさん:2007/08/15(水) 18:39:52
まず、静的型付け言語と動的型付け言語について学んではどうかな。
970デフォルトの名無しさん:2007/08/15(水) 18:41:06
>>954
>>>952
>DjangoとかTGとか、Web関係全般だろ

ZOPE/PLONE国内コミュの香ばしさは別格wwwwwwwwwwwwwwwwwwwww
971デフォルトの名無しさん:2007/08/15(水) 18:43:50
>>963
よくわからんが、strを継承したいんなら
class mystr(str):
でいいんでないの。そういう話じゃない?
古いPythonなら、strから直接継承できなくて、UserStringとかをつかう
必要があるかも知れん
あと、= はPythonではoperatorではないし代入は式ではない

なんか意味が良くわからんので、見当違いなレスになってたらスマソ
972デフォルトの名無しさん:2007/08/15(水) 19:07:07
>>967
>んなことわかってる。真面目な回答を希望する。

こんなクソみたいな態度取る夏厨に真面目な解答する奴なんていないだろ、常識的に考えて。
973デフォルトの名無しさん:2007/08/15(水) 20:40:28
>958
graphvizは? pythonから使えるのかしらないけど
974デフォルトの名無しさん:2007/08/15(水) 22:58:11
>>958
これ使えそうじゃない?
ttps://networkx.lanl.gov/wiki
975デフォルトの名無しさん:2007/08/16(木) 00:47:32
>>963

es = "a"

pythonではこの文の意味は、esを文字列"a"にする以外の意味には絶対にならない。
>>966の言うように
es = enhancedString("a")
とかするのが普通のデザインと思われ
あとは、まあ、
es = enhancedString()
es.setStr("a")
とか、・・・
976デフォルトの名無しさん:2007/08/16(木) 07:53:17
みなさんいろいろどうもありがとう。

enhancedString は

class EnhStr(object):
    def __init__(self, arg):
        self.__str   = arg
    def __add__(self, v): return self.__str + v
    def sets(self,v): ...
    def gets(self): return self.__str
    def dels(self): del self.__str
    ...
    __slots__ = ('__str', '__fsenc')
    string = property(gets, sets, dels, "string property.")

な感じで使ってみることに。(__add__だけオーバーロードしてもアレですが・・・)

これで

e = EnhStr("a")
e.string = "b"

とかできるようですね。

1.5.2以来あまりつかってなかったので new-style class はいろいろできて楽しいです。
977デフォルトの名無しさん:2007/08/16(木) 11:03:14
>>971
> あと、= はPythonではoperatorではないし代入は式ではない
なるほど・・・lambda やリスト内包に書けないのも確かそういう理由だったっけ。

>>976 にも書きましたが
C++ あがりなのでつい = を再定義したくなりましたが止めます。
継承万歳時代のOOPを勉強したので最近のがあまり理解できてません。
978958:2007/08/16(木) 11:29:02
アドバイスありがとございます。
>>973
graphvizはpydocってのでラッパーすると使えるみたいですので調べてみます。
>>974
まさしく見た目がこんなの探してました。
知らないライブラリだったので調べてみます。
979デフォルトの名無しさん:2007/08/16(木) 18:00:13
for x in lines:

のようなループで、x を処理後なんらかのリトライをしたくなり、
つぎのループ開始で同じ x を処理するためにイテレータに値を
押し戻すような処理ってできますか?
(意味不明・・・?)
ループカウンタ使えば
for (int i=0; i < 10; i++) {
if (a[i] == 1) { i--; continue; }
}
のような感じなのですが・・・・。
Itertool というライブラリが死ぬほど便利だと聞いたので見てみた
のですが、そういうのはないようで・・・。
980デフォルトの名無しさん:2007/08/16(木) 18:32:26
ところでPIL+Pygameで作ったときは
PILで画像表示とか読み込みするよね

PILのshow()だと効率が悪いらしい
代替策おしえてください
981デフォルトの名無しさん:2007/08/16(木) 21:42:00
>979

自分でイテレータ(のラッパ)を作ればできるよ。
化けたらごめん↓

class PushableIteratorWrapper:
    def __init__(self, ii):
        self._ii = iter(ii)
        self._pushBuf = []
        return
    def __iter__(self):
        return self
    def next(self):
        if self._pushBuf:
            return self._pushBuf.pop(0)
        return self._ii.next()
    def push(self, x):
        self._pushBuf.insert(0, x)

982デフォルトの名無しさん:2007/08/16(木) 22:33:13
                私のおじいさんがくれた初めての木馬
   .
        (・ω・`)    それは三角木馬で、私は4才でした。
    (・ω・) (====)     突き刺さるような刺激のなかにも、高級木材の暖かみがあり、
   ___(===) ( ⌒) ) . .  こんな素晴らしい木馬をもらえる私は、きっと特別な存在なのだと感じました。
 /\ `J   ̄`J ̄\  今では、私がおじいちゃん。孫にあげるのはもちろん三角木馬。
  ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ . なぜなら、
         | |
       / \       彼もまた特別な存在だからです。
983デフォルトの名無しさん:2007/08/17(金) 01:31:52
>>981
ありがとうございます!

__iter__ かなるほど・・・。
984デフォルトの名無しさん:2007/08/17(金) 11:29:09
985デフォルトの名無しさん:2007/08/17(金) 20:20:18
Opening Python Classes | Ian Bicking: a blog
ttp://blog.ianbicking.org/2007/08/08/opening-python-classes/
986デフォルトの名無しさん:2007/08/18(土) 13:33:16
>> 985
くだらね。
987デフォルトの名無しさん:2007/08/18(土) 19:55:26
決まったファイルをバックアップしたいだけだから、わざわざプログラムにせんでも、
バッチファイルでいいじゃんと思ったら、今ではbatkeyすらないのね。
いつかはpythonで、GUIスキンでオプション設定できるのを書けるようになりたい。
988デフォルトの名無しさん:2007/08/18(土) 20:48:03
>987
Windowsのバッチファイルでユーザ入力が欲しいってことなら
SET /P 変数名=プロンプト文字列
で文字列が入力出来るが。
989デフォルトの名無しさん:2007/08/19(日) 01:37:41
代替あるの知らなかった、指摘ありがとう。
HELP見たらいろいろ詰め込みすぎで、すごい難しくてdosの面影無くて驚いた。
変数受け取れるなら、バッチじゃなく普通のプログラム的に考えて使えそう。
990デフォルトの名無しさん:2007/08/20(月) 10:03:56
新スレが自演臭いクソオタに占拠されている件。
991デフォルトの名無しさん:2007/08/21(火) 17:33:43
992デフォルトの名無しさん:2007/08/22(水) 19:10:08
Wii
993デフォルトの名無しさん:2007/08/22(水) 20:01:59
Wii
994デフォルトの名無しさん:2007/08/22(水) 22:24:16
iiW
995デフォルトの名無しさん:2007/08/23(木) 04:47:20
WiiW
996デフォルトの名無しさん:2007/08/23(木) 08:58:42
>>991
>>>2
>>まだPythonに深入りしてない人向けの紹介記事。
>ry
>>On Python
>>http://www.shido.info/py/
>
>正直ねえよwwwwwwwwwwwwww

じっさい、紫藤って名前はオタくさいですね.
997デフォルトの名無しさん:2007/08/23(木) 23:54:39
Weei
998デフォルトの名無しさん:2007/08/23(木) 23:57:12
wWw
999デフォルトの名無しさん:2007/08/24(金) 08:16:07
?
1000デフォルトの名無しさん:2007/08/24(金) 08:17:23
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。