python变量赋值引用后值发生变化

提问人:庞嘉豪时间:2021-09-06 16:20:48

最近对python变量赋值引用后值发生变化这个问题挺纠结,大家给我点建议。

3个回答
伍相洲

是指向同一个内存地址的,python的赋值是只是把变量的内存地址赋值给另一个变量,这一点可以使用python的内建方法id来进行测试,对于你给的例子我们假设'QH'这个字符串在内存中的地址是a,'LJQ'在内存中的地址是byou='QH'#让you变量指向a地址me=you#让me变量和you变量一样指向a地址you='LJQ'#修改you变量,让它指向到b地址printyou#可想而知you指向的是b地址,所以它的值为'LJQ'printme#me指向的是a地址,所以它的值为'QH'输出LJQQH可以使用ID来加强对python的赋值机制的理解>>>a='asdf'>>>id(a)4>>>b=a>>>id(b)4>>>a='haha'>>>id(a)2>>>id(b)4>>>a'haha'>>>b'asdf'

聂醒杰

python中对象,赋值后是同一地址,如果是可变对象,对其中一个修改会影响到另一个,如果要生成完全新的对象,应使用deepcopy

data1=copy.deepcopy(data)

施永康

语法就是这么设定的,你如果想要让day改变时,a也改变,可以把a弄成函数:

相关的问题
  • python变量定义和赋值

    Python中的变量赋值不需要类型声明,这一点和其他java,c,c++语言都不相同。counter=100#赋值整型变量miles=.0#浮点型name="John"#字符串printname执行以上程序会输出如下结果

  • python赋值变量能逗号

    相当于为多个变量同时赋值为ab同时赋值a==0b==a

  • Python多变量同步赋值随机

    赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为变量=表达式;赋值语句的功能和特点都与赋值表达式相同。它是程序中使用最多的语句之一。在赋值语句的使用中需要注意以下几点1.由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,因此,下述形式变量=(变量=表达式);是成立的,从而形

  • python怎么定义变量赋值

    Python中的变量赋值不需要类型声明,这一点和其他java,c,c++语言都不相同。counter=100#赋值整型变量miles=.0#浮点型name="John"#字符串printname执行以上程序会输出如下结果

  • python将类名赋值给一个变量

    别在类的定义时将类名赋值,调用时才可以。classfun:print"hi,world"def__init__(self,params):fun2=funfun2如果想用switch,python中惯用字典来实现d={key1:value1,key2:value2},通过判断d[key1]

  • 图解python实现变量赋值

    python实现同时给多个变量赋值的方法这篇文章主要介绍了python实现同时给多个变量赋值的方法,涉及Python中变量赋值的相关技巧,非常具有实用价值,分享给大家供大家参考。具体分析如下python中可以同时给多个变量赋值,下面列举了三种方法#

  • python定义字符变量赋值

    有两种办法可以实现;第一种、先声明变量,然后转换,这样就可以了;第二种、反向的使用先声明一个列表变量,然后在列表中存储表示变量名字的字符串,最后实用locals映射这个变量,并给变量赋值。参考一个简单的例子,代码如下var=45

  • pythonyield赋值给变量

    你可以定义一个函数,使用return,然后其值给予变量。

  • python中赋值给变量赋值

    你可以定义一个函数,使用return,然后其值给予变量。

  • python读取txt赋值变量

    withopen('test.txt','r')asf:str=f.read#读取全部内容为字符串a=str[0]#把字符串当成列表赋值给变量b=str.split("3")#不知道text内容,不过预计你需要分割这个字符串,split下吧c=b[0]#把字符串当成列表赋值给另外一