python中的int函数属于字符串吗?

def fun(arg1,arg2):
    print('arg1:',arg1)#第二次输出
    print('arg2:',arg2)#第二次输出
    arg1=100
    arg2.append(40)
    print('arg1:', arg1)#第三次输出
    print('arg2:', arg2)#第三次输出
    return arg1,arg2
str1=11
list2=[10,20,30]
print('str1',str1)# 未进行赋值
print('list2',list2) # 未进行赋值
fun(str1,list2)#传参给def里的arg1和arg2
print('-----------------')
print('str1',str1)
print('list2',list2)
'''
输出为:
str1 11
list2 [10, 20, 30]
arg1: 11
arg2: [10, 20, 30]
arg1: 100
arg2: [10, 20, 30, 40]
-----------------
str1 11
list2 [10, 20, 30, 40]
'''

int是数值类型,属于不可变类型,你对 arg1=100 重新赋值,不会影响str1

 

arg2是列表,属于可变类型,

 

列表是按地址传递的。

当把一个列表从一个变量传递到另一个变量中时,两个变量都指向这同一个列表的地址。

 

a=[1,2];

b=a #a和b变量都指向同一个列表的地址。

print(id(a),id(b)) #两个变量指向同一个地址

 

当对列表的添加元素时,实际上是先读取变量中的地址找到列表,再改变这个列表的属性。

这样之后再用另一个变量中的地址所找到的也是这同一个列表,会获取到一样的列表内容。

 

b.append(3);

print(b) #输出  [1,2,3]

print(a) #输出  [1,2,3]

 

 

如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632