python函数参数是list_Python3基础 函数 参数为list 使用+=会影响到外部的实参

Python : 3.7.3

OS : Ubuntu 18.04.2 LTS

IDE : pycharm-community-2019.1.3

Conda : 4.7.5

typesetting : Markdown

code

"""

@Author : 行初心

@Date : 2019/7/4

@Blog : www.cnblogs.com/xingchuxin

@Gitee : gitee.com/zhichengjiu

"""

def change(num_list: list):

# 列表使用+=,本质上是调用extend方法!

# 不修改引用,整合列表,改变外部实参

# 此等细节...

num_list += [1]

print("def +=", id(num_list))

# 使用 +...=

# 这样写,没有调用方法。修改了引用,外部实参不受影响。

num_list = num_list + [1, 2, 3]

print("def +...=", id(num_list))

def main():

num_list = [0, 1, 2, 3]

print("main", id(num_list))

print("main", num_list)

change(num_list)

print("main change", id(num_list))

print("main change", num_list)

# 多使用id函数,自然解开疑惑

if __name__ == '__main__':

main()

result

/home/coder/anaconda3/envs/py37/bin/python /home/coder/PycharmProjects/Base/demo.py

main 140265422970760

main [0, 1, 2, 3]

def += 140265422970760

def +...= 140265422204360

main change 140265422970760

main change [0, 1, 2, 3, 1]

Process finished with exit code 0

source_code

def extend(self, *args, **kwargs): # real signature unknown

""" Extend list by appending elements from the iterable. """

pass

resource

[文档 - English] docs.python.org/3

[文档 - 中文] docs.python.org/zh-cn/3

[规范] www.python.org/dev/peps/pep-0008

[规范] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules

[源码] www.python.org/downloads/source

[ PEP ] www.python.org/dev/peps

[平台] www.cnblogs.com

[平台] gitee.com

Python具有开源、跨平台、解释型、交互式等特性,值得学习。

Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。

代码的书写要遵守规范,这样有助于沟通和理解。

每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值