0

私はPythonが初めてで、このコードを書きました

def geturl(url):
    url = urllib.quote(url,'/:')
    log( __name__ ,"Getting url:[%s]" % url)
    try:
        req = urllib2.Request(url)
        response = urllib2.urlopen(req)
        content    = response.read()
        return_url = response.geturl()
        response.close()
    except Exception, e:
        log( __name__ ,"Failed to get url because %s" % str(e))
        content    = None
        return_url = None
    return(content, return_url)

def myFunc():
    searchurl="http://www.google.com"
    socket.setdefaulttimeout(3)
    content, response_url = geturl(searchurl)
    if content is None:
        log( __name__ , "Content is None!!")
    content = content.replace("string1", "string2")

実行すると、次のエラーが表示されます: NoneType オブジェクトは呼び出し可能ではありません。理由がわかりません... NoneType が None の型であることを知りましたが、「コンテンツ」変数が None であるかどうかを確認しましたが、そうではありません。あなたの助けをthx

4

1 に答える 1

3

あなたは間違った行を与えていません、しかし私は以下が間違っていると思います:

if content is None:
    log( __name__ , "Content is None!!")
content = content.replace("string1", "string2")

contentが実際にである場合None、ログは発行されますが、toの呼び出しreplaceで例外が発生するまで、関数は実行を続けます。

于 2012-08-29T09:20:13.187 に答える