原理解析为什么pydantic可变对象没有随着修改而变化

 更新时间:2023年05月29日 08:37:05   作者:ponponon  
这篇文章主要介绍了为什么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 施加了什么“魔法”?

更多关于为什么 pydantic 中的可变对象没有随着修改变化呢?的资料请关注脚本之家其它相关文章!

相关文章

  • Pandas中根据条件替换列中的值的四种方式

    Pandas中根据条件替换列中的值的四种方式

    本文主要介绍了Pandas中根据条件替换列中的值的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Pycharm远程调试原理及具体配置详解

    Pycharm远程调试原理及具体配置详解

    这篇文章主要介绍了Pycharm远程调试原理及具体配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Django中的settings.py文件使用全解析

    Django中的settings.py文件使用全解析

    这篇文章主要介绍了Django中的settings.py文件使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Python求最小公倍数与最大公约数代码示例与解题思路

    Python求最小公倍数与最大公约数代码示例与解题思路

    这篇文章主要给大家介绍了Python求最小公倍数与最大公约数代码示例与解题思路的相关资料,包括迭代法、使用math模块的lcm和gcd函数以及辗转相除法,需要的朋友可以参考下
    2024-11-11
  • keras实现theano和tensorflow训练的模型相互转换

    keras实现theano和tensorflow训练的模型相互转换

    这篇文章主要介绍了keras实现theano和tensorflow训练的模型相互转换,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python代码打包工具cx_Freeze的安装及用法详解

    python代码打包工具cx_Freeze的安装及用法详解

    cx_Freeze是一个流行的Python库,它可以将Python脚本及其依赖项打包成独立的可执行文件,支持多平台(如Windows、Linux和macOS),本文将结合实际案例,详细介绍cx_Freeze的安装、配置和使用方法,需要的朋友可以参考下
    2024-08-08
  • python如何利用traceback获取详细的异常信息

    python如何利用traceback获取详细的异常信息

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置。这篇文章主要给大家介绍了关于python如何利用traceback获取详细的异常信息的相关资料,需要的朋友可以参考下
    2021-06-06
  • Python+matplotlib+numpy绘制精美的条形统计图

    Python+matplotlib+numpy绘制精美的条形统计图

    这篇文章主要介绍了Python+matplotlib+numpy绘制精美的条形统计图,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python实现代码加密的两种方案详解

    Python实现代码加密的两种方案详解

    这篇文章主要为大家详细介绍了Python实现代码加密的两种方案,主要是使用Pyarmor工具进行加密和使用cython进行加密,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-03-03
  • Pandas中Series和DataFrame的索引实现

    Pandas中Series和DataFrame的索引实现

    这篇文章主要介绍了Pandas中Series和DataFrame的索引实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06

最新评论