91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

宜黄县| 保定市| 宁陵县| 石渠县| 越西县| 彭州市| 陈巴尔虎旗| 呼伦贝尔市| 富平县| 城固县| 兴国县| 承德县| 沙坪坝区| 舞钢市| 商洛市| 奉新县| 体育| 宝山区| 醴陵市| 百色市| 大兴区| 东明县| 郧西县| 乡城县| 三穗县| 六枝特区| 贵德县| 泽普县| 石河子市| 巨鹿县| 安康市| 东乡族自治县| 宝应县| 浦江县| 涿州市| 航空| 广元市| 东山县| 武乡县| 益阳市| 肇东市|