欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

什么是python的自省

 更新時間:2020年06月21日 11:06:23   作者:silencement  
在本篇文章里小編給大家分享了關(guān)于python自省的相關(guān)知識點內(nèi)容,需要的朋友們可以參考學習下。

什么是自???

在日常生活中,自?。╥ntrospection)是一種自我檢查行為。

在計算機編程中,自省是指這種能力:檢查某些事物以確定它是什么、它知道什么以及它能做什么。自省向程序員提供了極大的靈活性和控制力。

說的更簡單直白一點:自省就是面向?qū)ο蟮恼Z言所寫的程序在運行時,能夠知道對象的類型。簡單一句就是,運行時能夠獲知對象的類型。

例如python, buby, object-C, c++都有自省的能力,這里面的c++的自省的能力最弱,只能夠知道是什么類型,而像python可以知道是什么類型,還有什么屬性。

最好的理解自省就是通過例子: Type introspection 這里是各種編程語言中自省(introspection)的例子(這個鏈接里的例子很重要,也許你很難通過敘述理解什么是introspection,但是通過這些例子,一下子你就可以理解了)

回到Python,Python中比較常見的自省(introspection)機制(函數(shù)用法)有: dir(),type(), hasattr(), isinstance(),通過這些函數(shù),我們能夠在程序運行時得知對象的類型,判斷對象是否存在某個屬性,訪問對象的屬性。

dir()

dir() 函數(shù)可能是 Python 自省機制中最著名的部分了。它返回傳遞給它的任何對象的屬性名稱經(jīng)過排序的列表。如果不指定對象,則 dir() 返回當前作用域中的名稱。讓我們將 dir() 函數(shù)應(yīng)用于 keyword 模塊,并觀察它揭示了什么:

>>> import keyword
>>> dir(keyword)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'iskeyword', 'kwlist', 'main']

type()

type() 函數(shù)有助于我們確定對象是字符串還是整數(shù),或是其它類型的對象。它通過返回類型對象來做到這一點,可以將這個類型對象與 types 模塊中定義的類型相比較:

>>> type(42)<class 'int'>
>>> type([])<class 'list'>

isinstance()

可以使用 isinstance() 函數(shù)測試對象,以確定它是否是某個特定類型或定制類的實例:

>>> isinstance("python", str)
True

python自省中help用法擴展:

打開python的IDLE,就進入到了python解釋器中,python解釋器本身是被認為是一個主模塊,然后在解釋器提示符>>>下輸入一些我們想了解的信息,所以首先我們會先尋求幫助,所以輸入help,接著輸入help(),我們就進入了help utility,然后循著提示keywords,modules,以了解python的關(guān)鍵字以及python自帶的或者我們額外安裝和定義的模塊,如果要退出,輸入'q',然后回車。

如果我們想了解某個對象(python里面所有對象都可以認為是對象),也可以求助也help(),不過要在括號里輸入對象的名稱,格式help(object),例如help(print),鑒于對象的自省內(nèi)容太多,有的只粘貼出部分內(nèi)容。

>>> help
Type help() for interactive help, or help(object) for help about object.
>>> help()

Welcome to Python 3.6's help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at https://docs.python.org/3.6/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To quit this help utility and
return to the interpreter, just type "quit".
...
help> keywords

Here is a list of the Python keywords. Enter any keyword to get more help.

False        def         if         raise
None        del         import       return
True        elif        in         try
and         else        is         while
as         except       lambda       with
assert       finally       nonlocal      yield
break        for         not         
class        from        or         
continue      global       pass        

help> modules

Please wait a moment while I gather a list of all available modules...

PIL         base64       idlelib       runpy
__future__     bdb         idna        runscript
__main__      binascii      idna_ssl      sched
_ast        binhex       imaplib       scrolledlist
_asyncio      bisect       imghdr       search
_bisect       browser       imp         
...
Enter any module name to get more help. Or, type "modules spam" to search
for modules whose name or summary contain the string "spam".
>>> help('print')
Help on built-in function print in module builtins:

print(...)
  print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
  
  Prints the values to a stream, or to sys.stdout by default.
  Optional keyword arguments:
  file: a file-like object (stream); defaults to the current sys.stdout.
  sep:  string inserted between values, default a space.
  end:  string appended after the last value, default a newline.
  flush: whether to forcibly flush the stream. 

到此這篇關(guān)于什么是python的自省的文章就介紹到這了,更多相關(guān)python自省是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 15行Python代碼實現(xiàn)免費發(fā)送手機短信推送消息功能

    15行Python代碼實現(xiàn)免費發(fā)送手機短信推送消息功能

    這篇文章主要介紹了通過15行Python代碼實現(xiàn)免費發(fā)送手機短信推送消息功能,通過實例代碼截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • np.zeros()函數(shù)的使用方法

    np.zeros()函數(shù)的使用方法

    本文主要介紹了np.zeros()函數(shù)的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • python基礎(chǔ)教程之簡單入門說明(變量和控制語言使用方法)

    python基礎(chǔ)教程之簡單入門說明(變量和控制語言使用方法)

    這篇文章主要介紹了開始學習python的第一步需要知道的知識(變量和控制語言使用方法),需要的朋友可以參考下
    2014-03-03
  • Python 的七個HTTP請求庫對比小結(jié)

    Python 的七個HTTP請求庫對比小結(jié)

    本文主要介紹了Python 的七個HTTP請求庫對比小結(jié),文中通過圖表,示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Python入門教程(二十)Python的Lambda表達式

    Python入門教程(二十)Python的Lambda表達式

    這篇文章主要介紹了Python入門教程(二十)Python的Lambda表達式,lambda表達式是一行的函數(shù)。它們在其他語言中也被稱為匿名函數(shù),lambda表達式非常有用,可以讓代碼簡單,簡潔,需要的朋友可以參考下
    2023-04-04
  • Python RPA自動化機器人模擬鼠標鍵盤

    Python RPA自動化機器人模擬鼠標鍵盤

    這篇文章主要介紹了Python RPA自動化機器人模擬鼠標鍵盤,RPA,全稱為Robotic Process Automation,即機器人流程自動化。我們可以利用RPA技術(shù)將工作中可重復(fù)的部分流程化,讓機器替我們完成這一工作
    2023-02-02
  • 教你怎么用Python實現(xiàn)多路徑迷宮

    教你怎么用Python實現(xiàn)多路徑迷宮

    這篇文章主要介紹了教你怎么用Python實現(xiàn)多路徑迷宮,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python開發(fā)之Docker入門安裝部署教程

    python開發(fā)之Docker入門安裝部署教程

    這篇文章是一篇入門篇,主要給大家介紹了關(guān)于python開發(fā)中的Docker安裝部署,圖文方式展示了安裝的過程步驟,有需要的朋友可以參考下
    2021-09-09
  • python實現(xiàn)商品進銷存管理系統(tǒng)

    python實現(xiàn)商品進銷存管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python實現(xiàn)商品進銷存管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • python學習與數(shù)據(jù)挖掘應(yīng)知應(yīng)會的十大終端命令

    python學習與數(shù)據(jù)挖掘應(yīng)知應(yīng)會的十大終端命令

    今天我們將介紹一些基本的數(shù)據(jù)收集、探索和聚合—所有這些都是通過shell完成的。如果你使用的是Linux或Mac,那么接下來就不會有任何問題,但是Windows用戶應(yīng)該在繼續(xù)之前下載一個終端仿真器
    2021-11-11

最新評論