色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

python 遞歸調(diào)用返回None的問題及解決方法

瀏覽:34日期:2022-08-02 10:48:52

今天在做python獲取郵件時需要遞歸調(diào)用解析函數(shù)才可以解析郵件內(nèi)容,最后想要將解析出的內(nèi)容返回時發(fā)現(xiàn)返回的是None 可以內(nèi)容卻可以打印出來,很費解。后來在網(wǎng)上找到了解決方案,才想明白 在這里記錄下。

原文:https://www.jb51.net/article/182765.htm

原始測試代碼如下:

def print_info(msg, indent=0): if indent == 0: for header in [’From’, ’To’, ’Subject’]: value = msg.get(header, ’’) if value: if header == ’Subject’: value = decode_str(value) else: hdr, addr = parseaddr(value) name = decode_str(hdr) value = u’%s <%s>’ % (name, addr) print(’%s%s: %s’ % (’ ’ * indent, header, value)) if msg.is_multipart(): parts = msg.get_payload() for n, part in enumerate(parts): print(’%spart %s’ % (’ ’ * indent, n)) print(’%s--------------------’ % (’ ’ * indent)) print_info(part, indent + 1) #這里是沒有返回的 else: content_type = msg.get_content_type() if content_type==’text/plain’ or content_type==’text/html’: content = msg.get_payload(decode=True) charset = guess_charset(msg) if charset: content = content.decode(charset) print(’%sText: %s’ % (’ ’ * indent, content)) return content else: print(’%sAttachment: %s’ % (’ ’ * indent, content_type))

這樣的方式返回的content是None。

修改方式如下:

def print_info(msg, indent=0): if indent == 0: for header in [’From’, ’To’, ’Subject’]: value = msg.get(header, ’’) if value: if header == ’Subject’: value = decode_str(value) else: hdr, addr = parseaddr(value) name = decode_str(hdr) value = u’%s <%s>’ % (name, addr) print(’%s%s: %s’ % (’ ’ * indent, header, value)) if msg.is_multipart(): parts = msg.get_payload() for n, part in enumerate(parts): print(’%spart %s’ % (’ ’ * indent, n)) print(’%s--------------------’ % (’ ’ * indent)) return print_info(part, indent + 1) 在遞歸調(diào)用時直接返回函數(shù)本身 else: content_type = msg.get_content_type() if content_type==’text/plain’ or content_type==’text/html’: content = msg.get_payload(decode=True) charset = guess_charset(msg) if charset: content = content.decode(charset) print(’%sText: %s’ % (’ ’ * indent, content)) return content else: print(’%sAttachment: %s’ % (’ ’ * indent, content_type))

區(qū)別在于遞歸調(diào)用的時候,要將函數(shù)本身一起返回。這樣就可以將最后的遞歸結(jié)果一點一點返回,可以解決返回的結(jié)果為None的問題。

總結(jié)

到此這篇關(guān)于python 遞歸調(diào)用返回None的問題及解決方法的文章就介紹到這了,更多相關(guān)python 遞歸返回None 內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 步兵一区二区三区在线观看 | 国产精品一区二区四区 | 国内久久久 | 国产精品亚洲天堂 | 一区二区国产在线播放 | 成人亚洲国产 | 国产一区二区在免费观看 | 亚洲国产成人久久午夜 | 久久久久一级片 | 性感美女一级毛片 | 黄色wwwcom| 91成人免费在线视频 | 亚洲免费视频播放 | 国产精品日韩欧美 | 一区二区三区日韩精品 | 欧美成人高清手机在线视频 | 国产性色| 一级欧美一级日韩 | 欧美一级视频在线高清观看 | 俄罗斯aa毛片极品 | 日韩特级片| 久色国产| 中文字幕s级优女区 | 色噜噜国产精品视频一区二区 | 色综久久 | 一区二区三区四区视频在线 | 亚洲精品一区二区三区福利 | ccyycom草草影院成人91 | 亚洲男人天堂av | 一区二区三区不卡视频 | 在线视频一区二区三区四区 | 亚洲天堂2018av| 欠草视频 | 玖玖国产在线观看 | 亚洲经典三级 | 亚洲精品国自产拍在线观看 | 成人涩涩屋福利视频 | 国产成人精品久久亚洲高清不卡 | 久久久久久久久免费影院 | 国产成a人片在线观看视频 国产成版人视频网站免费下 | 成人欧美在线 |