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的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。

原文地址:https://www.cnblogs.com/xingchuxin/p/11135312.html

时间: 2024-10-07 07:46:31

Python3基础 函数 参数为list 使用+=会影响到外部的实参的相关文章

Python3基础 函数 参数 多个参数都有缺省值,需要指定参数进行赋值

? ???????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/

Python3基础 函数 参数 在设定缺省值的情况下指明参数类型

? ???????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/

速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

[源码下载] 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函数返回值 可变函数 匿名函数 闭包函数 回调函数 示例1.函数的相关知识点 1(基础)function/function1.php <?php /** * 函数的相关知识点 1(基础) */ // 可以在相关的 function 声明语句之前调用该函数 f1(); function f1() { echo "f1"; echo "<br />"; } // 这里调用

Python3基础——函数

ython 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义函数 def functionname( parameters ): "函数_文档字符串" function_suite return [expression] 函数文档类似于注释,用于理解函数的功能.可以使用functionname.__do

Python3基础 函数 关键字参数 的示例

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: def FunAdd(jiaOne,jiaTwo,jianOne) : '单行函数文档' return (jiaOne+jiaTwo-jianOne) #你看这么多参数,万一顺序弄混了,就尴尬了. #所以关键字参数 res=FunAdd(jiaOne=1,jiaTwo=-3,j

Python3基础 函数 收集参数+普通参数 的示例

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: # 收集参数 定制参数 定制参数 def MyFun(* paramters, name, key) : print('收集参数的长度:',len(paramters)) print(paramters[1]) print(name) print(key) #如何调用呢? #定

C基础--函数参数副本

转自:http://blog.csdn.net/chujiangke001/article/details/38553173 1 void GetMemory(char *p, int num) 2 { 3 p = (char*)malloc(sizeof(char)*num); 4 } 5 6 void main(void) 7 { 8 char *str = NULL; 9 GetMemory(str,100); //str仍然为NULL 10 strcpy(str,"hello"

Python3基础-函数实例学习

内置函数 绝对值函数 x = abs(100) y = abs(-20) print('x=100的绝对值为:{}'.format(x)) print('y=-20的绝对值为:{}'.format(y)) x=100的绝对值为:100 y=-20的绝对值为:20 求最大值.最小值.求和函数 print("(1, 2, 3, 4)中最大max的元素为:{}".format(max(1, 2, 3, 4))) print("(1, 2, 3, 4)中最小min的元素为:{}&qu

Python3基础-函数作用域

参考文档:https://www.runoob.com/python3/python3-namespace-scope.html 作用域 作用域就是一个 Python 程序可以直接访问命名空间的正文区域. 在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误. Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的. 变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称 作用域类型 L(Loca