亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python 遞歸調用返回None的問題及解決方法

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

今天在做python獲取郵件時需要遞歸調用解析函數才可以解析郵件內容,最后想要將解析出的內容返回時發現返回的是None 可以內容卻可以打印出來,很費解。后來在網上找到了解決方案,才想明白 在這里記錄下。

原文: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) 在遞歸調用時直接返回函數本身 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))

區別在于遞歸調用的時候,要將函數本身一起返回。這樣就可以將最后的遞歸結果一點一點返回,可以解決返回的結果為None的問題。

總結

到此這篇關于python 遞歸調用返回None的問題及解決方法的文章就介紹到這了,更多相關python 遞歸返回None 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 色婷婷六月桃花综合影院 | 国产成人午夜性视频影院 | 国产精品免费观看 | 欧美午夜a级精美理论片 | 国产亚洲精品久久久久久午夜 | 黄色片三| 亚洲精品国产第七页在线 | 欧美成人三级一区二区在线观看 | 在线国产网站 | 成年大片免费播放视频人 | 狠狠综合欧美综合欧美色 | 亚洲精品久久婷婷爱久久婷婷 | 麻豆国产入口在线观看免费 | 国产午夜精品片一区二区三区 | 欧美性三三影院 | 婷婷综合久久 | 亚洲黄色高清 | 50-60岁老妇女一级毛片 | 久久精品国产2020观看福利色 | 亚洲综合激情另类专区 | 欧美在线观看一区二区三区 | 国产黄a三级三级看三级 | 欧美色欧美亚洲高清在线视频 | 爱爱动态视频免费 | 国产日产久久 | 国产成人手机视频 | 国外成人在线视频 | 日韩欧美亚洲国产一区二区三区 | 国产欧美日韩不卡 | 免费看色视频 | 国产精品一区二区不卡 | 欧美午夜一艳片欧美精品 | 久久久久久久亚洲精品一区 | 成人做爰 | 精品国产一区二区三区久久 | 九九热精品视频在线播放 | 日本免费久久久久久久网站 | 片在线观看视频免费 | 亚洲国产成人精品不卡青青草原 | 91成人高清在线播放 | 亚洲一区二区精品 |