中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的對象是什么意思

發布時間:2020-08-03 10:30:53 來源:億速云 閱讀:192 作者:清晨 欄目:編程語言

不懂Python中的對象是什么意思?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

Python中的對象

在Python中,一切都是對象。為了證明,你可以打開一個REPL并探索使用isinstance():

Python中的對象是什么意思

>>> isinstance(1, object)
True
>>> isinstance(list(), object)
True
>>> isinstance(True, object)
True
>>> def foo():
...     pass
...
>>> isinstance(foo, object)
True

此代碼向您顯示Python中的所有內容確實是一個對象。每個對象至少包含三個數據:

參考計數、類型、

該引用計數為內存管理。要深入了解Python中的內存管理內部。

該類型在CPython層使用,以確保運行時的類型安全性。最后,有值,即與對象關聯的實際值。

但并非所有對象都是相同的。您還需要了解另一個重要的區別:不可變對象和可變對象。理解對象類型之間的差異確實有助于闡明Python中的指針。

不可變對象和可變對象

在Python中,有兩種類型的對象:

無法更改的不可變對象、可以改變的可變對象。

理解這種差異是在Python中學習指針的第一個關鍵。以下是常見類型的細分以及它們是否可變或不可變:

Type    Immutable?
int         Yes
float       Yes
bool        Yes
complex     Yes
tuple       Yes
frozenset   Yes
str         Yes
list        No
set         No
dict        No

如您所見,許多常用的基元類型是不可變的。您可以通過編寫一些Python來證明這一點。您需要Python標準庫中的一些工具:

id() 返回對象的內存地址。

isTrue當且僅當兩個對象具有相同的內存地址時才返回。

再一次,您可以在REPL環境中使用它們:

>>> x = 5
>>> id(x)
94529957049376

在上面的代碼中,已分配的值5來x。如果您嘗試使用add修改此值,那么您將獲得一個新對象:

>>> x  + =  1 
>>> x 
6 
>>> id (x )
94529957049408

即使上面的代碼似乎修改了值x,你也會得到一個新對象作為響應。

該str類型也是不變的:

>>> s = "real_python"
>>> id(s)
140637819584048
>>> s += "_rocks"
>>> s
'real_python_rocks'
>>> id(s)
140637819609424

同樣,操作后s最終會有不同的內存地址+=。

對于某些對象list,+=將轉換為__iadd__()(就地添加)。這將修改self并返回相同的ID。但是,str并int沒有這些方法而導致__add__()調用而不是__iadd__()。

試圖直接改變字符串會s導致錯誤:

>>> s[0] = "R"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

上面的代碼失敗了,Python表明它str不支持這種突變,這與該str類型是不可變的定義一致。

與可變對象形成對比,例如list:

>>> my_list = [1, 2, 3]
>>> id(my_list)
140637819575368
>>> my_list.append(4)
>>> my_list
[1, 2, 3, 4]
>>> id(my_list)
140637819575368

此代碼顯示了兩種類型對象的主要區別。my_list最初有一個id。即使在4附加到列表后,my_list也具有相同的 ID。這是因為list類型是可變的。

證明列表可變的另一種方法是賦值:

>>> my_list[0] = 0
>>> my_list
[0, 2, 3, 4]
>>> id(my_list)
140637819575368

在此代碼中,您my_list將其第一個元素變異并設置為0。但是,即使在此分配之后,它仍保持相同的ID。隨著可變和不可變對象的出現,的下一步是理解Python的變量生態系統。

感謝你能夠認真閱讀完這篇文章,希望小編分享Python中的對象是什么意思內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张北县| 武穴市| 榆社县| 随州市| 游戏| 永泰县| 福贡县| 东乌珠穆沁旗| 兴宁市| 微博| 高碑店市| 从江县| 都安| 博野县| 循化| 石景山区| 铁岭市| 罗源县| 阿拉善左旗| 青州市| 宁海县| 肥东县| 庆安县| 谢通门县| 剑川县| 洛宁县| 塘沽区| 上思县| 民县| 彭水| 宁安市| 东兰县| 右玉县| 盐城市| 那坡县| 甘德县| 巴林右旗| 邵东县| 桃源县| 宜州市| 大足县|