在Python3中builtins模組與當前正在執行的主模組是什麼關係?

時間 2021-06-08 14:57:38

1樓:coder

# ,# '_dh': ['C:\\Users\\LENOVO'],

# 'In': ['', 'globals()'],

# 'Out': {},

# 'get_ipython': >,

# 'exit': ,

# 'quit': ,

# '_': '',

# '__': '',

# '___': '',

# '_i': '',

# '_ii': '',

# '_iii': '',

# '_i1': 'globals()'}

module

dict

```# ,

# '_6': dict,

# '_i7': 'globals()'}

```dict

在第 1步中沒注釋的那行, 我們可以看到

'__builtins__': ,

這可以解釋第3步的結果.

第4,5步的結果可以用第6步中沒被注釋的部分來解釋

__builtins__ 變成了乙個字典的key

第7,8步的結果看似不可思議, 其實是可以實現的.

在呼叫del 物件

這個語句的時候發生了什麼?, 其具體內部是怎麼實現的我就不知道了, 反正最後生成了乙個字典, 而且這個字典還刪不掉? 其實可以是刪不掉, 也可能是刪了後重新生成的.

(我不清楚)

為什麼我們可以在終端沒有定義的

globals(),print(),dir(), int()...... 都可以在終端被呼叫?

In [20]: log = print

In [21]: def print(*argslog(*args, 'haha'In [22]: print(1)

1 haha

上面這個例子, 可以說明我們呼叫方法時, python直譯器對某個變數的尋找方式可能是先尋找當前作用域, 再去__builtins__字典裡面去匹配.

至於你最後問的那個問題, 我覺得沒有描述清楚, 這裡不作答.

你看好 Python 3 嗎?

令狐蔥 不管看好還是不看好,都得追隨Python 3的腳步吧?看看官網上的說法 What are the differences?Short version Python 2.x is legacy,Python 3.x is the present and future of the langua...

Python3新手爬蟲求教?

henryPKU 如果想簡單快速上手,選個爬蟲框架就行了,scrapy 六的飛起,中文文件也很詳細。爬蟲框架用多了自然而然就有了深刻理解,而且自頂向下,會比直接寫爬蟲達到更高的抽象層次 不吃夾生飯 我也是一開始接觸到py3,隨後再py2.7,現在因為工作又繼續用py3。一開始,明白最基本那幾個庫的用...

python3 模擬登入失敗?

黃哥 headers 的資訊不全造成的,抓包,填上所有headers資訊。import urllib.request opener urllib.request.build opener opener.addheaders User agent Mozilla 5.0 opener.open htt...