Python小數據池,代碼塊

? ?今日內容一些小的干貨? ? ? ?

  • 一. id is ==
  • 二. 代碼塊
  • 三. 小數據池
  • 四. 總結

?

python小數據池,代碼塊的最詳細、深入剖析

  • 一. id is ==
  • 二. 代碼塊
  • 三. 小數據池
  • 四. 總結

一,id,is,==

在Python中,id是什么?id是內存地址,比如你利用id()內置函數去查詢一個數據的內存地址:

name = '太白'
print(id(name))  # 1585831283968

那么 is 是什么? == 又是什么?

== 是比較的兩邊的數值是否相等,而 is 是比較的兩邊的內存地址是否相等。 如果內存地址相等,那么這兩邊其實是指向同一個內存地址。

可以說如果內存地址相同,那么值肯定相同,但是如果值相同,內存地址不一定相同。

二,代碼塊。

根據官網提示我們可以獲知:

?View Code

上面的主要意思是:

Python程序是由代碼塊構造的。塊是一個python程序的文本,他是作為一個單元執行的。

代碼塊:一個模塊,一個函數,一個類,一個文件等都是一個代碼塊。

而作為交互方式輸入的每個命令都是一個代碼塊。

什么叫交互方式?就是咱們在cmd中進入Python解釋器里面,每一行代碼都是一個代碼塊,例如:

而對于一個文件中的兩個函數,也分別是兩個不同的代碼塊:

OK,那么現在我們了解了代碼塊,這和小數據池有什么關系呢?且聽下面分析。

代碼塊的緩存機制

Python在執行同一個代碼塊的初始化對象的命令時,會檢查是否其值是否已經存在,如果存在,會將其重用。換句話說:執行同一個代碼塊時,遇到初始化對象的命令時,他會將初始化的這個變量與值存儲在一個字典中,在遇到新的變量時,會先在字典中查詢記錄,如果有同樣的記錄那么它會重復使用這個字典中的之前的這個值。所以在你給出的例子中,文件執行時(同一個代碼塊)會把i1、i2兩個變量指向同一個對象,滿足緩存機制則他們在內存中只存在一個,即:id相同。

代碼塊的緩存機制的適用范圍:?int(float),str,bool。

int(float):任何數字在同一代碼塊下都會復用。

bool:True和False在字典中會以1,0方式存在,并且復用。

str:幾乎所有的字符串都會符合緩存機制,具體規定如下(了解即可!):

1,非乘法得到的字符串都滿足代碼塊的緩存機制:

s1 = '太白@!#*ewq'
s2 = '太白@!#*ewq'
print(s1 is s2)  # True

2,乘法得到的字符串分兩種情況:

  2.1 乘數為1時,任何字符串滿足代碼塊的緩存機制:

b1 = '太白@5847395QQ0743895*&^%$#((&_+(())' *1
a1 = '太白@5847395QQ0743895*&^%$#((&_+(())' *1print(a1 is b1)  # True

  2.2 乘數>=2時:僅含大小寫字母,數字,下劃線,總長度<=20,滿足代碼塊的緩存機制:

s1 = 'old_' * 5
s2 = 'old_' * 5
print(s1 is s2)  # True

?優點:能夠提高一些字符串,整數處理人物在時間和空間上的性能;需要值相同的字符串,整數的時候,直接從‘字典’中取出復用,避免頻繁的創建和銷毀,提升效率,節約內存。

?

?

?

轉載于:https://www.cnblogs.com/Py-king/p/10321547.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387529.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387529.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387529.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Wax】使用Wax (framework方式,XCode 4.6)

前情提示&#xff1a;【Wax】使用Wax &#xff08;非framework方式&#xff0c;XCode 4.6&#xff09; 這次&#xff0c;將以framework的方式來使用Wax 那么&#xff0c;讓我們開始吧&#xff01;&#xff01;&#xff01; 準備工作&#xff1a; 下載wax.framework&#xff1a;…

unity3d 簡單動畫

1&#xff0c;動畫系統配置 創建游戲對象并添加Animation組件&#xff0c;然后將動畫文件拖入組件。 進入動畫文件的Debug屬性面板 選中Legacy屬性 選中游戲對象&#xff0c;打開Animation編輯窗口 添加動畫變化屬性 需改關鍵幀的屬性值 配置完成后運行即可得到動畫效果 2&…

人月神話閱讀筆記(二)

今天對人月神話的正文部分進行了閱讀&#xff0c;從人月神話這一部分中了解到缺乏合理的時間進度控制是造成滯后的主要原因&#xff0c;比其他任何事情影響的和還大&#xff0c;書中也對造成這種這種普遍災難的原因進行了并進行了詳細列舉。 首先&#xff0c;我們對估算技術缺乏…

3dmax導出到unity3d下分割動畫

1、在3dmax 導出時候&#xff0c;要導出FBX文件&#xff0c;同時包含動畫&#xff0c;骨骼&#xff0c;皮膚等內容 2、把FBX文件導入到Unity3d后會默認有一個超長的大動畫&#xff0c;就是一個整體的動畫&#xff0c;如圖Take001&#xff0c;這個時候要分割哪部分是跑&#xf…

華碩首款平板電腦周五開售

新浪科技訊北京時間3月21日晚間消息&#xff0c;華碩周一宣布&#xff0c;將于本周開售首款平板電腦EeePadTransformer。本周五&#xff0c;臺灣地區用戶將可以率先預定這款平板電腦&#xff0c;隨后還將在全球其他國家和地區推出,悠語yoryu化妝品玻尿酸水潤彈力面膜120ml補水保…

(2)頁面標簽解析

<!--規定文檔類型的指令&#xff1a;html,以h5的語法來書寫html文件--><!DOCTYPE html><!--頁面根標簽&#xff0c;什么是根標簽&#xff0c;就是一個頁面空間可以理解成全局&#xff0c;所有內容都在這個頁面空間內--><!--langen就是定義頁面的默認語言&…

Unity3d之AssetBundle打包與讀取

一、創建Assetbundle 在unity3d開發的游戲中&#xff0c;無論模型&#xff0c;音頻&#xff0c;還是圖片等&#xff0c;我們都做成Prefab&#xff0c;然后打包成Assetbundle&#xff0c;方便我們后面的使用&#xff0c;來達到資源的更新。 一個Assetbundle可以打包一個模型&…

Android代碼抄襲Java曝猛料 新證據出現

Oracle最初告Android代碼里侵犯了他們旗下Java知識產權的時候,大多數不明真相的圍觀群眾都是站在Google這一邊的,畢竟Oracle蠻橫不講理慣了嘛. 但是,這次我們還真是當了不明真相的圍觀群眾了,美國專利博 ... Oracle最初告Android代碼里侵犯了他們旗下Java知識產權的時候,大多數…

JS之數據類型v(** v**)v個人筆記

<body> <!-- 單詞記憶 argument&#xff1a;實參 assignment&#xff1a;賦值 instance&#xff1a;實例 1.JS中的數據類型分為以下類型 *值類型&#xff08;基本類型&#xff09;*String&#xff1a;可以為任何字符串*Number&#xff1a;可以為任何數字*boolean&…

unity3d 各個目錄的意思

1.首先&#xff0c;你得理解Unity中各個目錄的意思&#xff1f; 我這里說的是移動平臺&#xff08;安卓舉例&#xff09;&#xff0c;讀&#xff0c;寫。所謂讀&#xff0c;就是你出大版本的包之后&#xff0c;這個只讀的話&#xff0c;就一輩子就這些東西了&#xff0c;不會改…

WordPress Option API(數據庫儲存 API)

WordPress Option API 是提供給開發者的數據庫存儲機制&#xff0c;通過調用函數&#xff0c;可以快速、安全的把數據存儲到數據庫里&#xff08;都在 wp_options 表&#xff09;。 每個設置的模式是 key – value&#xff0c;利于擴展。Option API 不僅僅給主題和插件開發者用…

asp.net core根據用戶權限控制頁面元素的顯示

asp.net core根據用戶權限控制頁面元素的顯示 Intro 在 web 應用中我們經常需要根據用戶的不同允許用戶訪問不同的資源&#xff0c;顯示不同的內容&#xff0c;之前做了一個 AccessControlHelper 的項目&#xff0c;就是解決這個問題的。 asp.net core 支持 TagHelper 和 基于 …

Please let us know in case of any issues

Please let us know in case of any issues轉載于:https://www.cnblogs.com/zhangchenliang/archive/2010/05/18/1738117.html

Java面向對象(二)

source:http://blog.java1234.com/index.html?typeId1 Java類的繼承 1&#xff0c;繼承定義以及基本使用 定義&#xff1a;子類能夠繼承父類的屬性和方法&#xff1b; 注意點&#xff1a;Java中只支持單繼承&#xff1b; 私有方法不能繼承&#xff1b; 2&#xff0c;方法重寫 …

游戲通訊方式

農藥自從上線以來&#xff0c;依靠著強大的產品力以及騰訊的運營能力&#xff0c;在游戲市場上表現可謂是風生水起&#xff0c;根據第三方的調研數據顯示&#xff0c;《王者榮耀》滲透率達到22.3%&#xff0c;用戶規模達到2.01億人&#xff0c;每日的日活躍用戶&#xff08;DAU…

小小c#算法題 - 3 - 字符串語句反轉

題目&#xff1a;反轉語句。 如I love Beijing! 反轉后輸出 !Beijing love I 特點是指反轉單詞的順序&#xff0c;其他字符&#xff08;這個可以自己指定&#xff09;不反轉。且不能用內置函數&#xff0c;如Split和Substring。 分析&#xff1a;我們需要保證一個單詞的字…

unity5.4.3p2里面的AssetBundle打包流程

unity5.4.3p2里面的AssetBundle打包流程&#xff0c;相比之前unity4.x的打包簡單了許多&#xff0c;Unity4.X中打包的時候需要自己去管理依賴關系&#xff0c;各種BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies()&#xff0c;一不小心手一抖&…

靜態查找表的實現

#ifndef SSTABLE_H #define SSTABLE_H#include <iostream> using namespace std;/************************************************************* SSTable&#xff1a;stastic search table 靜態查找表的模板類實現 順序存儲結構 ************************************…

(轉)javascript匿名函數

文章來源: http://hi.baidu.com/koen_li/blog/item/4b14e4fc0c9b140c08244d8c.html 匿名函數的寫法 顧名思義&#xff0c;就是沒有名字的函數&#xff08;⊙﹏⊙b汗&#xff09;。匿名函數通常用于javascript作用域的控制&#xff0c;可以有效的避免對全局變量的污染。常見的匿…

BZOJ3307 雨天的尾巴

題目鏈接&#xff1a;戳我 樹上鏈修改->差分 每一個節點都開一個權值線段樹&#xff0c;最后從下往上合并qwq 代碼如下&#xff1a; #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cmath> #define MA…