日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
神器,輕松可視化Python程序調用流程

我們先來看下效果圖:

創(chuàng)新互聯(lián)建站是一家專注于網站設計、成都網站設計與策劃設計,豐順網站建設哪家好?創(chuàng)新互聯(lián)建站做網站,專注于網站建設十多年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:豐順等地區(qū)。豐順做網站價格咨詢:18982081108

怎么樣,很是驚艷吧~

下面我們就來一起完成這個可視化過程。

1. 安裝 graphviz 工具

生成圖片的過程,是依賴工具 graphviz 的,我們先進行下載安裝。

下載地址

  • http://www.graphviz.org/download/

2. 實戰(zhàn)

接下來我們還需要安裝兩個 Python 依賴庫。

pip install pycallgraph

下面我們先寫一個基礎的代碼;

from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput
class Banana:
def eat(self):
pass
class Person:
def __init__(self):
self.no_bananas()
def no_bananas(self):
self.bananas = []
def add_banana(self, banana):
self.bananas.append(banana)
def eat_bananas(self):
[banana.eat() for banana in self.bananas]
self.no_bananas()
def main():
graphviz = GraphvizOutput()
graphviz.output_file = 'basic.png'
with PyCallGraph(output=graphviz):
person = Person()
for a in range(10):
person.add_banana(Banana())
person.eat_bananas()
if __name__ == '__main__':
main()

代碼比較簡單,定義了兩個簡單類,主要 pycallgraph 的核心代碼在 main 函數(shù)中,在 with 代碼塊下,把我們定義的代碼執(zhí)行一遍即可

運行上面的代碼,會在當前目錄下生成 basic.png 圖片文件

從生成的圖片可以非常清晰的看出整個代碼的運行過程,從 main 代碼塊到各個類的初始化,可以說一目了然。

我們再來一個復雜一點的例子:

import re
from pycallgraph import PyCallGraph
from pycallgraph import Config
from pycallgraph.output import GraphvizOutput
def main():
graphviz = GraphvizOutput()
graphviz.output_file = 'regexp.png'
config = Config(include_stdlib=True)
with PyCallGraph(output=graphviz, config=config):
reo = compile()
match(reo)
def compile():
return re.compile('^[abetors]*$')
def match(reo):
[reo.match(a) for a in words()]
def words():
return [
'abbreviation',
'abbreviations',
'abettor',
'abettors',
'abilities',
'ability',
'abrasion',
'abrasions',
'abrasive',
'abrasives',
]
if __name__ == '__main__':
main()

代碼同樣不負責,不過在編譯器內部是調用了 re 正則的,我們來看看最終生成的圖片:

可以看到整個代碼過程復雜了很多,因為內部調用了很多正則內部函數(shù)等,但是整體還是非常清晰的

可以說這個神級第三方庫,絕對是眾多 Python 愛好者,尤其是剛剛入門 Python 領域的朋友的福音,當我們遇到某些不熟悉的較為復雜的代碼塊時,不妨使用該庫來嘗試一下可視化,看看能不能從中爆發(fā)靈感呢~


網站標題:神器,輕松可視化Python程序調用流程
當前網址:http://www.dlmjj.cn/article/coohipd.html