代码可视化网站
http://www.pythontutor.com/visualize.html#mode=edit
用梯子访问会快很多
举个例子:
class Book(object):# 定义类的参数def __init__(self,book_id, book_name, book_store_count):self.book_id = book_idself.book_name = book_nameself.book_store_count = book_store_count# 重写加法操作def __add__(self,book):return self.book_store_count + book.book_store_count# 创建两个 Book 类的实例:python_intro_book = Book(1,'python入门书',100)ml_intro_book = Book(2,'机器学习入门书',200)# 求两本书的总销量sales_cnt = python_intro_book + ml_intro_bookprint(sales_cnt) # 300
比如这个例子,我一直没看懂第9行的 self.book_store_count + book.book_store_count 是什么意思,直到看到了可视化图,才明白 self, book 是分别指 + 左边和右边的对象。

再比如以下这张图,能清晰看出,主程序中的 lst 和函数中的 lst 指向了同一个对象,因此如果在函数中改变了 lst ,那么回到主程序中, lst 也会相应被改变。

教程
首推廖雪峰,言简意赅,讨论区有不少精华解析
Python 官方中文文档
