参数传递 python 相关记录

参数传递 python 相关记录,第1张

文章目录
  • 1. 准则
  • 2. 代码

1. 准则
  • 不可变对象作为函数参数,相当于c系语言的值传递
  • 可变对象作为函数参数,相当于c系语言的引用传递
  • 一旦函数中遇到=,就会重新开辟一个内存空间,不再对传递过来的参数有影响
2. 代码
# 1.对于不可变str处理
#   不可变对象作为函数参数,相当于c语言中的值传递;
#   所以传递进来的参数值跟本身的值无关

def change_str(param):
	param+"2"

# 2.对于可变list处理
#   可变对象作为函数参数,相当于c语言中的引用传递
#   因为传递的是地址,所以对地址的改变会影响到本身
def change_list(param):
	param.append("abc")
	# 一旦函数中遇到"=",就会重新开辟一个内存空间,
	# 不再对传递过来的参数有影响
	# 所以本身的lisa不会被覆盖成['a','b','d']
	param=['a','b','d']


num = "1"
print(f"num_before = {num}")
# num_before = 1
change_str(num)
print(f"num_after = {num}")
# num_after = 1


lisa = ["1","2"]
print(f"lisa_before = {lisa}")
# lisa_before = ['1', '2']

change_list(lisa)
print(f"lisa_after = {lisa}")
# lisa_after = ['1', '2', 'abc']

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/728090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存