当前位置: 首页 > news >正文

Pycharm(六):可变与不可变类型

一、引用

在java中既有值传递,也有引用传递,我们思考一下在python中值的传递方式是哪种类型呢?

答案是引用传递

概述:

        Python中存储变量是需要占用内存空间的,为了更好地管理这些空间,每块空间都是有自己的地址值的。

格式:

        id(变量名/值)           可以查看变量/值在内存中的地址。

细节:

        Python中的 = 是引用传递,即:把等号右边的变量(值)地址值赋给  左边的变量。

记忆:

        1.可变和不可变类型的划分依据:

        在不改变地址值的情况下,其元素值是否可以发生改变;如果可以发生改变就是可变类型,不可以发生改变就是不可变类型。

        2.可变和不可变类型的具体划分如下:

        可变类型:列表,字典,集合;

        不可变类型:整型,浮点型,布尔类型,字符串类型,元组类型。

示例1.观察如下代码中在内存中有几个10

# 需求1: 观察如下的代码, 分析: 内存中到底有几个10.
a = 10
b = a
c = aprint(a, b, c)  # 10, 10, 10# 观察 a, b, c的地址值.
print(id(a))    # 140726997170904
print(id(b))    # 140726997170904
print(id(c))    # 140726997170904
print('-' * 30)

 运行结果:

根据结果,我们可以分析得出a,b,c三个变量都指向同一个地址,这个地址内存储的是10.

示例2.演示不可变类型修改值之后地址的变化

# 需求2: 演示 不可变类型.    整型
a = 100
print(f'变量a的内容: {a}')       # 100
print(f'变量a的地址: {id(a)}')   # 0x01, 140727005431320# 修改变量 a 的值.
a = 200
print(f'变量a的内容: {a}')       # 200
print(f'变量a的地址: {id(a)}')   # 0x02, 140727005434520
print('-' * 30)

运行结果:

可以看出,对于不可变类型,修改值之后会地址值会发生改变,变量a原来指向100对应的地址,修改值之后,地址对应也发生改变,指向200对应的地址。

示例3.演示

相关文章:

  • 3.3 Spring Boot文件上传
  • 2025年深度学习模型发展全景透视(基于前沿技术突破与开源生态演进的交叉分析)
  • 【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明
  • Linux系统下的常用网络命令
  • 如何在SOLIDWORKS中高效管理文件属性?
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • macOS 更新后找不到钥匙串访问工具的解决方案
  • Flutter Dart中的函数参数 默函数的定义 可选参数 箭头函数 匿名函认参数 命名参类数 闭包等
  • 如何通过python连接hive,并对里面的表进行增删改查操作
  • 信奥赛之c++基础(计算机存储+数据类型转换)
  • kafka和Spark-Streaming2
  • Linux常用中间件命令大全
  • Golang | 倒排索引
  • docker的安装和简单使用(ubuntu环境)
  • 示波器测试差分信号
  • Spring缓存注解深度实战:3大核心注解解锁高并发系统性能优化‌
  • 探索亚马逊云科技:开启您的云计算之旅
  • 正则表达式及其游戏中应用
  • 【设计】接口幂等性设计
  • SQLite 是什么?
  • 艺术与医学的对话,瑞金医院办了一个展览
  • 女儿被偷拍后,一个父亲的战斗
  • 航行警告!黄海南部进行实弹射击,禁止驶入
  • 共话城市自然之美,“微观黄浦”自媒体网络大V沙龙首场活动举行
  • 夜读丨囿于厨房与爱
  • 贵州通报9起群众身边不正之风和腐败问题典型案例