ページ

2009年1月8日

Python 3.0への準備、ちょっとだけ

PyHyperEstraierでPython 3.0を無視し続けるつもりでしたが、ちょっとだけ、対応中。で、そのメモ。

Python2.6でPython 3.0でdeprecateの機能を使っているかをチェックします。pythonの引数に-3をつければよいらしいです。PyHyperEstraierをこれを使ってチェックすると、って、printに括弧がないのが大杉。なので、まず、それらを直してから、再度チェックすると、dict.has_keyは使っちゃいやん警告がでます。inを使えということらしい。

>>> d = { 1:2, 3:4}
>>> 1 in d
True
>>> 2 in d
False

ということらしい。大きなところはこのぐらいです。で、別のところで、タイプが違うものを比較しようとしていて、やめてよ警告がでます。こんな感じ。

class Hoge:
    def __init__(self):
        self.fuga = None
    
    def f(self):
        if self.fuga > 0:
            return True
        return False

とかってあると、self.fugaのところでNoneと0を比較しようとしているって怒られます。えーっと、実行時じゃなくってパースした時です。ちょっとすげー。なので、これを直すととりあえず、PyHyperEstraierに関する警告は出なくなりました。でも、Twistedで沢山出ます。まあ、仕方ないです。

0 件のコメント: