[英]How are the contents of the builtins module available in the global namespace without import in Python?
答案的非實現細節部分是builtins
模塊,或Python 2中的__builtin__
,提供對內置命名空間的訪問。 如果你想修改內置插件(你通常不應該這樣做),在builtins
設置上設置屬性是你如何去做的。
實現細節部分答案是Python以多種方式跟蹤內置函數。 例如,每個框架對象都會跟蹤它正在使用的內置命名空間,這可能與其他框架的內置命名空間不同。 您可以通過框架的f_builtins
屬性訪問它。 當LOAD_GLOBAL
指令無法在框架的全局變量中找到名稱時,它會查看框架的內部結構。 在大多數全局命名空間中還有一個__builtins__
全局變量,但它並不直接用於內置變量查找; 相反,它用於在幀對象創建期間在某些情況下初始化f_builtins
。 全局PyInterpreterState
還有一個builtins
引用,如果沒有當前幀對象,它將用作默認內置函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.