以下の内容はhttps://seinzumtode.hatenadiary.jp/entry/20180603/1528010355より取得しました。


PythonでASTを逆変換してソースコードにする その2

whileループを抜き出して別の関数に埋め込む例

import ast
import codegen

expr="""
def main():
    i = 0
    while(i<3):
        print(i)
        i += 1
    print("done")

if __name__=="__main__":
    main()
"""
p=ast.parse(expr)
while_part = p.body[0].body.pop(1)
p1 = ast.parse("def sub():\n    pass")
p1.body[0].body.append(while_part)
p1.body[0].body.pop(0)
p.body.insert(1,p1)

print("****** original ******")
print(expr)
print("****** converted ******")
print(codegen.to_source(p))
****** original ******

def main():
    i = 0
    while(i<3):
        print(i)
        i += 1
    print("done")

if __name__=="__main__":
    main()

****** converted ******
def main():
    i = 0
    print 'done'

def sub():
    while (i < 3):
        print i
        i += 1
if (__name__ == '__main__'):
    main()



以上の内容はhttps://seinzumtode.hatenadiary.jp/entry/20180603/1528010355より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14