前言
又遇新框架,迷糊找接口。
隔日又更新,版本多如狗。
中文找不着,英文看不懂。
源码链不进,链进链不尽。
捂脸问大神,传女不传男。
终日不成章,泣涕零如雨。
纸上终觉浅,debug要躬行!
上网找教学文档
- 博客、论坛等:最常用的方式,可以快速入门
- 官方文档:一堆英文噢,反正很少用
- 教学视频:系统学习,先学原理再学接口,比较耗时
Debug模式
Pycharm带Debug模式,先点红一段代码,然后Shift+F9
看源码
- Pycharm的Ctrl+鼠标右键可以链到源码,但有时候链不到
- 找到包的路径(例如:
Anaconda3\Lib\site-packages
),单独复制出来,这样还能看到整个目录架构
内置函数dir和help
def find_api(thing):
for i in dir(thing):
try:
j = eval('thing.' + i)
print('\033[031m{}\033[0m'.format(i), j)
except:
pass
from pandas import DataFrame
find_api(DataFrame)
help(DataFrame)
详细一点的版本
def find_not_startwith(thing, prefix='_'):
for i in dir(thing):
try:
j = eval('thing.' + i)
if not i.startswith(prefix):
print('\033[033m{}\033[0m'.format(i), j)
except:
pass
def find_isinstance(thing, t=(str, int, dict, list, tuple, float)):
for i in dir(thing):
try:
j = eval('thing.' + i)
if isinstance(j, t):
print('\033[033m{}\033[0m'.format(i), j)
except:
pass
def find_callable(thing):
for i in dir(thing):
try:
j = eval('thing.' + i)
if callable(j):
print('\033[033m{}\033[0m'.format(i), j)
except:
pass
import collections
find_not_startwith(collections);print('-'*50)
find_isinstance(collections);print('-'*50)
find_callable(collections);print('-'*50)
问人
问问朋友或同事,顺便增进下感情
发论坛,出赏金(没试过,不造行不行)