原理解析為什么pydantic可變對象沒有隨著修改而變化
正文
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
class User(BaseModel):
friends: List[int] = []
user_1 = User()
user_1.friends.append(1)
print(user_1.friends)
user_2 = User()
print(user_2.friends)上面的代碼,運行后輸出如下:
[1]
[]
我有一個疑問,就是 friends 的默認值是一個 [] 空列表,通過前后兩次實例化,兩個實例對象持有的 friends 為什么指向的不是同一個 list 呢?
如果去掉繼承 BaseModel,輸出的兩個就都是 [1] 了
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
class User():
friends: List[int] = []
user_1 = User()
user_1.friends.append(1)
print(user_1.friends)
user_2 = User()
print(user_2.friends)輸出
[1]
[1]
pydantic 的 BaseModel 施加了什么“魔法”?
更多關(guān)于為什么 pydantic 中的可變對象沒有隨著修改變化呢?的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python求最小公倍數(shù)與最大公約數(shù)代碼示例與解題思路
這篇文章主要給大家介紹了Python求最小公倍數(shù)與最大公約數(shù)代碼示例與解題思路的相關(guān)資料,包括迭代法、使用math模塊的lcm和gcd函數(shù)以及輾轉(zhuǎn)相除法,需要的朋友可以參考下2024-11-11
keras實現(xiàn)theano和tensorflow訓練的模型相互轉(zhuǎn)換
這篇文章主要介紹了keras實現(xiàn)theano和tensorflow訓練的模型相互轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python+matplotlib+numpy繪制精美的條形統(tǒng)計圖
這篇文章主要介紹了Python+matplotlib+numpy繪制精美的條形統(tǒng)計圖,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Pandas中Series和DataFrame的索引實現(xiàn)
這篇文章主要介紹了Pandas中Series和DataFrame的索引實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06

