EEWiKi
首页
  • 命名数据网络
  • 论文笔记
  • 机器学习
  • 研学周报
  • C++
  • Python
  • 计算机网络
  • 数据结构与算法
  • 计算机组成原理
  • 操作系统
  • 英语学习
  • 面试
  • 运动
  • 生活读书杂货
  • 实用技巧
  • 软件使用安装
最近更新
GitHub (opens new window)
首页
  • 命名数据网络
  • 论文笔记
  • 机器学习
  • 研学周报
  • C++
  • Python
  • 计算机网络
  • 数据结构与算法
  • 计算机组成原理
  • 操作系统
  • 英语学习
  • 面试
  • 运动
  • 生活读书杂货
  • 实用技巧
  • 软件使用安装
最近更新
GitHub (opens new window)
  • C++

  • Python

    • Python
    • 可变对象与不可变对象
    • shell

    • 编程语言
    • Python
    peirsist
    2022-08-11
    目录

    可变对象与不可变对象

    在python中,strings,tuples和numbers是不可更改的对象,而list,dict等则是可以修改的对象。

    1、不可变类型:

    变量赋值a=5后再赋值a=10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。

    2、可变类型:

    变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将list la的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

    python 函数的参数传递:

    1、不可变类型:类似c++的值传递,如整数、字符串、元组。如func(a),传递的只是a的值,没有影响a对象本身。比如在func(a)内部修改a的值,只是修改另一个复制的对象,不会影响a本身。

    2、可变类型:类似c++的引用传递,如列表,字典。如func(la),则是将a真正的传过去,修改后func外部的la也会受影响。

    python中一切都是对象,严格意义我们不能说是值传递还是引用传递,我们应该说传不可变对象和传可变对象。

    赋值就是对物体进行贴标签操作

    • **直接赋值:**其实就是对象的引用(别名)。
    • **浅拷贝(copy):**拷贝父对象,不会拷贝对象的内部的子对象。
    • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

    # 参考

    • python 变量不可更改对象和可修改对象_星空黑夜的博客-CSDN博客_python变量不可修改 (opens new window)
    • Python函数中修改变量(值传递、引用传递、可变对象、不可变对象)的深入思考_Glimmer_r的博客-CSDN博客_python 修改变量 (opens new window)
    • Python彻底搞懂:变量、对象、赋值、引用、拷贝 - 知乎 (zhihu.com) (opens new window)
    • [如何理解Python变量?如何查看变量的内存地址? | w3c笔记 (w3cschool.cn)](https://www.w3cschool.cn/article/17998789.html#:~:text=python语言中变量的实现方式就是引用语义,在变量里面保存的是值(对象)的引用(值所在处内存空间的地址)。,采用这种方式,变量所需的存储空间大小一致,因为其中只需要保存一个引用。 而有些语言(例如c)采用的不是这种方式,它们把变量直接保存在变量的存储区里,这种方式就称为值语义。)
    • 详解Python变量在内存中的存储_lm_y的博客-CSDN博客_python变量在内存中的存储 (opens new window)
    • Python对象内存地址_兔子不咬手指的博客-CSDN博客_python 地址 (opens new window)
    • python变量与内存_永远的麦田的博客-CSDN博客_python变量占用内存 (opens new window)
    • Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程 (runoob.com) (opens new window)
    上次更新: 2022/08/11, 03:44:08
    Python
    shell

    ← Python shell→

    最近更新
    01
    极大似然估计
    08-11
    02
    C++基础
    08-11
    03
    STL
    08-11
    更多文章>
    Theme by Vdoing | Copyright © 2022-2022 peirsist | 早睡,运动,读书
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式