Python筆記—幫助系統(inspect,dir,help,__doc__,vars)

Python官方文檔:docs.python.org

import matplotlib.pyplot as plt
import inspect

inspect

一個自學神器庫,可以查看函數的代碼,參數,以及路徑

  • 查看函數的路徑 inspect.getabsfile(...)
  • 查看全部代碼 inspect.getsource(模塊.函數)或者(模塊.類.函數)
  • 查看函數參數 inspect.getfullargspec(...) 查看類的參數,則括弧里為(模塊.類.__init__)

inspect.getabsfile(plt.figure) #查看`plt.figure`的路徑
c:\users\administrator\appdata\local\programs\python\python36\lib\site-packages\matplotlib\pyplot.py


print(inspect.getsource(plt.figure)) #查看`plt.figure`的全部代碼

def figure(num=None, # autoincrement if None, else integer from 1-N
figsize=None, # defaults to rc figure.figsize
dpi=None, # defaults to rc figure.dpi
facecolor=None, # defaults to rc figure.facecolor
edgecolor=None, # defaults to rc figure.edgecolor
frameon=True,
FigureClass=Figure,
clear=False,
**kwargs
):
"""
Creates a new figure.

Parameters
----------

inspect.getfullargspec

  • 獲取Python函數參數的名稱和默認值

返回結果

GetFullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotations)

結果參數

  • args:是位置參數名稱的列表
  • varargs:是*參數的名稱,None表示不接受任意位置參數
  • varkw:是**參數的名稱,None表示不接受任意的關鍵字參數。
  • defaults:是與n個位置參數相對應的默認參數值的n元組,None表示沒有默認值
  • kwonlyargs:是關鍵字參數名稱的列表。
  • kwonlydefaults:是一個映射到kwonlyargs參數默認值字典,None表示沒有
  • annotations:是將參數名稱映射到注釋的字典。該特殊鍵return用於報告函數返回值注釋(如果有的話)

inspect.getfullargspec(plt.figure) #查看`plt.figure`的所有參數
FullArgSpec(args=[num, figsize, dpi, facecolor, edgecolor, frameon, FigureClass, clear], varargs=None, varkw=kwargs, defaults=(None, None, None, None, None, True, <class matplotlib.figure.Figure>, False), kwonlyargs=[], kwonlydefaults=None, annotations={})


Dir

在python中,一切皆對象

  • dir(object):返回object所有有效的屬性列表

    object:對象

fig = plt.figure()
dir(fig)

[_Figure__remove_ax,
__class__,
__delattr__,
__dict__,
__dir__,
__doc__,
__eq__,
__format__,
__ge__,
__getattribute__,
__getstate__,
__gt__,
__hash__,
....
<Figure size 432x288 with 0 Axes>


doc , help

查看對象某個屬性的幫助文檔

a = plt.figure()
print(a.gca.__doc__)
help(a.gca)

Get the current axes, creating one if necessary

The following kwargs are supported for ensuring the returned axes
adheres to the given projection etc., and for axes creation if
the active axes does not exist:

adjustable: [ box | datalim]
agg_filter: a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array
alpha: float (0.0 transparent through 1.0 opaque)
anchor: [ C | SW | S | SE | E | NE | N | NW | W ]
animated: bool
aspect: unknown
autoscale_on: bool
autoscalex_on: bool
...
<Figure size 432x288 with 0 Axes>


# vars

返回對象object的屬性和屬性值的字典對象。

  • vars(object):返回對象object的屬性和屬性值的字典對象,如果沒有參數,就列印當前調用位置的屬性和屬性值,類似 locals()

a = plt.figure()
vars(a)

{_stale: True,
stale_callback: None,
figure: None,
_transform: None,
_transformSet: False,
_visible: True,
_animated: False,
_alpha: None,
clipbox: None,
_clippath: None,
_clipon: True,
_label: ,
_picker: None,
_contains: None,
_rasterized: None,
...
<Figure size 432x288 with 0 Axes>

推薦閱讀:

Python面試筆試300題系列1
Scrapy爬蟲模擬登錄豆瓣
python處理json文件?
《流暢的 Python 》閱讀筆記
Python——抽象基類

TAG:Python | Python入門 | Python教程 |