Python找接口

前言

又遇新框架,迷糊找接口。
隔日又更新,版本多如狗。
中文找不着,英文看不懂。
源码链不进,链进链不尽。
捂脸问大神,传女不传男。
终日不成章,泣涕零如雨。
纸上终觉浅,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)

问人

问问朋友或同事,顺便增进下感情
发论坛,出赏金(没试过,不造行不行)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章