成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

神器,輕松可視化 Python 程序調用流程

開發 后端
今天我們來分享一個 Python 領域的神級第三方庫 -- pycallgraph,通過該庫并結合 graphviz 工具,就可以非常方便的完成 Python 應用程序調用流程的可視化工作。

我們先來看下效果圖:

怎么樣,很是驚艷吧~

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

1. 安裝 graphviz 工具

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

下載地址

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

2. 實戰

接下來我們還需要安裝兩個 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 函數中,在 with 代碼塊下,把我們定義的代碼執行一遍即可

運行上面的代碼,會在當前目錄下生成 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 正則的,我們來看看最終生成的圖片:

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

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

責任編輯:龐桂玉 來源: 小詹學Python
相關推薦

2022-02-23 09:50:52

PythonEchartspyecharts

2021-10-08 09:27:11

Python圖形化工具

2021-07-02 14:07:00

可視化Plotly漏斗圖

2022-08-26 09:15:58

Python可視化plotly

2009-08-03 21:43:03

IT運維可視化摩卡

2021-07-27 11:45:37

Python 開發編程

2025-05-16 10:00:00

Python數據可視化

2025-02-25 11:14:39

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2020-08-04 13:40:02

數據可視化熱力圖表格

2021-04-24 23:26:12

Python儀表盤存儲

2019-03-20 13:44:30

Web 開發代碼

2023-04-14 08:21:55

2018-03-24 21:38:54

Python數據庫數據可視化

2018-03-26 14:20:23

PythonMatplotlib數據可視化

2021-06-24 13:00:35

微軟開源可視化

2020-03-23 14:55:52

Python可視化Plotly

2017-10-14 13:54:26

數據可視化數據信息可視化

2016-09-09 13:48:54

API可視化華為開發者社區

2009-04-21 14:26:41

可視化監控IT管理摩卡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品美女久久久av超清 | 午夜免费看| 成人精品毛片 | 欧美日韩一区二区在线 | 日韩亚洲欧美一区 | 国产视频久| 中文字幕一级毛片视频 | 国产成人免费视频网站高清观看视频 | 久久精品小视频 | www.se91| 久久成人免费视频 | 99久久婷婷国产综合精品电影 | www.99热.com | 欧美激情精品久久久久 | 国产精品久久久久久亚洲调教 | 国产免费拔擦拔擦8x高清 | 福利成人| 久久躁日日躁aaaaxxxx | 久久久国产一区二区三区四区小说 | 成人伊人| 精品久久精品 | 国产在线观看福利 | 国产1区 | 午夜成人免费视频 | 黑人久久久 | 国产精品久久久久久久7777 | 狠狠综合久久av一区二区小说 | 亚洲精品国产成人 | 特黄毛片 | 超碰综合 | 日韩中文字幕一区二区 | 伊人伊人伊人 | 欧美日韩综合精品 | 手机在线一区二区三区 | 中文字幕亚洲欧美日韩在线不卡 | 天堂资源 | 91精品国产综合久久久久蜜臀 | 久久久久久久久久久福利观看 | 国产欧美精品一区二区 | 亚洲国产二区 | 精品伊人久久 |