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

千图网素材下载网站用照片做模板下载网站好

千图网素材下载网站,用照片做模板下载网站好,内容型网站,国外的营销网站有哪些文章目录 Python 中的可变对象与不可变对象不可变对象(Immutable Objects)可变对象(Mutable Objects)重要区别 Python 中的可变对象与不可变对象 在 Python 中,对象可以分为可变对象(mutable)和不可变对象(immutable),这是 Python 中非常重要的概念&…

文章目录

  • Python 中的可变对象与不可变对象
    • 不可变对象(Immutable Objects)
    • 可变对象(Mutable Objects)
    • 重要区别

Python 中的可变对象与不可变对象

在 Python 中,对象可以分为可变对象(mutable)和不可变对象(immutable),这是 Python 中非常重要的概念,影响着对象的赋值、传递和修改行为。

不可变对象(Immutable Objects)

不可变对象是指创建后不能被修改的对象。如果尝试修改,实际上是创建了一个新对象。

常见的不可变类型

  • 数字类型:int, float, bool
  • 字符串:str
  • 元组:tuple
  • 冻结集合:frozenset

示例

# 整数是不可变的
x = 10
print(id(x))  # 打印内存地址
x += 1
print(id(x))  # 内存地址改变,是新对象# 字符串是不可变的
s = "hello"
print(id(s))
s += " world"
print(id(s))  # 新字符串对象# 元组是不可变的
t = (1, 2, 3)
try:t[0] = 100  # 尝试修改元组的第一个元素
except TypeError as e:print(e)  # 输出错误信息(TypeError)

特别注意:

尽管元组本身是不可变的,但如果元组中包含可变对象,如列表,这些可变对象内部的内容是可以被修改的。这种情况下,元组的不可变性只适用于顶层结构,不影响内部元素的可变性。

tup = (1, [2, 3], 4)
tup[1].append(5)  # 修改元组中的列表
print(tup)  # 输出 (1, [2, 3, 5], 4)

可变对象(Mutable Objects)

可变对象是指创建后可以被修改的对象,修改时内存地址不变。

常见的可变类型

  • 列表:list
  • 字典:dict
  • 集合:set
  • 字节数组:bytearray
  • 用户自定义的类实例

示例

# 列表是可变的
lst = [1, 2, 3]
print(id(lst))  # 打印内存地址
lst.append(4)
print(id(lst))  # 内存地址不变# 字典是可变的
d = {'a': 1}
print(id(d))
d['b'] = 2
print(id(d))  # 内存地址不变# 集合是可变的
st = {1, 2, 3}
print(id(st))
st.add(4)
st.remove(3)
print(id(st))

重要区别

  1. 赋值与修改

    # 不可变对象
    a = 1
    b = a
    b = 2  # a不变# 可变对象
    x = [1, 2]
    y = x
    y.append(3)  # x也被修改
    
  2. 函数参数传递

    • 不可变对象作为参数时,函数内修改不会影响原值
    • 可变对象作为参数时,函数内修改会影响原值
    def modify(num, lst):num += 1lst.append(4)n = 10
    l = [1, 2, 3]
    modify(n, l)
    print(n)  # 输出10,不变
    print(l)  # 输出[1, 2, 3, 4],被修改
    
  3. 字典键的限制

    • 只有不可变对象可以作为字典的键
    • 可变对象不能作为字典的键
    d = {}
    d['key'] = 'value'  # 字符串键,合法
    d[1] = 'number'     # 整数键,合法
    d[(1, 2)] = 'tuple' # 元组键,合法# d[[1, 2]] = 'list'  # 报错,列表不能作为键
    
  4. 集合元素的限制
    尽管集合是可变的,但也有一些操作上的限制。例如,集合只能包含不可变(可哈希)的对象。因此不能将列表或另一个集合作为元素添加到集合中。

    nested_set = {1, 2, 3}
    try:nested_set.add([4, 5, 6])  # 尝试添加列表到集合中# nested_set.add({7, 8, 9})  # 尝试添加另一个集合到集合中
    except TypeError as e:print(e)  # 输出错误信息
    

理解可变和不可变对象的区别对于编写正确、高效的 Python 代码非常重要,特别是在处理对象传递和共享状态时。


文章转载自:

http://M1Ly1D2l.mpfLb.cn
http://5ZlxhYpB.mpfLb.cn
http://b0mdJKQ5.mpfLb.cn
http://zgzZhb5y.mpfLb.cn
http://pJ3jFStu.mpfLb.cn
http://3X9RTTGA.mpfLb.cn
http://cSQmk0Oh.mpfLb.cn
http://4xn7DgmV.mpfLb.cn
http://HHz2dmpC.mpfLb.cn
http://KyGSElP5.mpfLb.cn
http://azt2yv9S.mpfLb.cn
http://1XHMmVWf.mpfLb.cn
http://6ZyOfIcY.mpfLb.cn
http://muzyzTbE.mpfLb.cn
http://unpmiDSt.mpfLb.cn
http://A46SIBWm.mpfLb.cn
http://iCsJ8Rsi.mpfLb.cn
http://fw3nd6Bt.mpfLb.cn
http://47QHKjOt.mpfLb.cn
http://yLvVoL6l.mpfLb.cn
http://fhM8Wxa6.mpfLb.cn
http://WUAGQPrs.mpfLb.cn
http://GbgjDr7A.mpfLb.cn
http://X0jS2LJP.mpfLb.cn
http://DJ8ocC8o.mpfLb.cn
http://IFx1tyZ5.mpfLb.cn
http://kjaj31iU.mpfLb.cn
http://eyjlbWeP.mpfLb.cn
http://pz02xZQR.mpfLb.cn
http://dGF6ptDN.mpfLb.cn
http://www.dtcms.com/wzjs/605166.html

相关文章:

  • 哪些是网站建设恢复正常百度
  • 母婴网站dede织梦重庆做网站的网络公司
  • 新公司网站建设北京企业网站开发
  • 什么网站做详情页好wordpress用户级别内容不同
  • 中性衣服印花图案设计网站大气一点的公司名字
  • 网站制作多少钱公司建网站怎么弄
  • 凡科网站制作平台品牌型网站建设公司
  • 五屏网站建设如何怎么在在慧聪网上做网站推广
  • 嘉兴cms模板建站网页设计与制作软件有哪些
  • 做报名表的网站崇信县门户网站官网
  • 天津谁做网站php外贸网站建设
  • 网站备案说主体已注销南阳建设网站制作
  • wordpress 子站点网站怎么做悬浮图片放大
  • 上海做网站公司推荐wordpress新用户无法注册
  • 视频类的网站制作学校网站建设成功
  • 不收费的网站个性化网站建设
  • 国家重点学科建设网站常平网站仿做
  • 音乐网站页面设计金华做网站的公司
  • 深圳自定义网站开发网站制作工具 织梦
  • ssh做网站步骤东莞百度网络推广
  • 郑州做网站 汉狮网络做网站时会遇到什么问题
  • 邢台网站建设费用免费网站程序
  • 网站地址正能量营口网站制作
  • 电子商务网站开发难点网站搭建开发
  • 黑龙江 俄语网站制作建筑设计公司经营范围
  • 陕西免费做网站陕西省建设监理协会证书查询网站
  • 网站开发和软件开发含义平邑县住房和城乡建设局网站
  • 网站建设计划书 模板下载网站换一个图片怎么做
  • 移动网站开发工具网站域名需icp备案
  • 网站建设 ppt购物网站策划书