首页 > 编程语言 >python函数参数传递 可更改对象 不可更改对象

python函数参数传递 可更改对象 不可更改对象

时间:2022-09-19 14:24:33浏览次数:74  
标签:函数 la python 可更改 对象 参数 类型

1、函数分为内联函数和自定义函数

2、参数传递:在 python 中,类型属于对象,变量是没有类型的

例如:[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也可以指向 String 类型对象。

3、可更改(mutable)与不可更改(immutable)对象

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

  • 不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

  • 可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

  • 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

  • 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

4、以下是调用函数时可使用的正式参数类型:

  • 必备参数,必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
  • 关键字参数,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
  • 默认参数,def printinfo( name, age = 35 ):
  • 不定长参数,加了星号(*)的变量名会存放所有未命名的变量参数。

 

标签:函数,la,python,可更改,对象,参数,类型
From: https://www.cnblogs.com/h694879357/p/16707533.html

相关文章

  • python lambda创建匿名函数
    注意:lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的命名空......
  • RGW-对象篇
    rgw中,对象上传后,default.rgw.buckets.data:xattr:omap:nullomapheader:null在default.rgw.buckets.index中,会记录桶的分片信息。每个对象表示一个分片,每个分片对象......
  • OOP面向对象的七大设计原则
     一.开闭原则 OCP(Open-ClosedPrinciple)核心思想:对扩展开发,对修改关闭。好处:可以提高代码的可复用性。可以提高代码的可维护性。 二.里氏代换原则 LSP(LiskovSub......
  • Python--不定长参数
    不定长参数:在定义函数的时候,参数的个数不是固定的。未来的调用者,可能自由选择不传或者传几个或者传很多定义函数:1、*args    在定义函数是用*args来接受,其......
  • Python工具箱系列(六)
    相比较于windows下安装python,在Linux下安装python实际上是一个非常困难的选择。首先要解决的就是选择哪个发行版本的问题。Linux的内核掌握在技术团队中,但是Linux发行版本......
  • JavaScript 对象
    JavaScript 对象JavaScript对象是拥有属性和方法的数据。在JavaScript中,几乎所有的事物都是对象。对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:val......
  • Python 与 Smalltalk 相比如何?
    Python与Smalltalk相比如何?Python是目前世界上最流行的编程语言,根据TIOBE,PYPL,和IEEE频谱.红僧将Python排在第2位。Python是两种最受欢迎​​的职位发......
  • CTP For Python
    GitHub地址:https://github.com/shizhuolin/PyCTP这是程序化期货交易上期ctp接口版本.将其包装为python版本.支持python3编译需求:vs2010/gcc编译方法pythonsetup.py......
  • 使用脚本修改hosts文件(bat+python)
    使用脚本修改hosts文件(bat+python)一、使用bat脚本方式  使用bat修改hosts文件,首先判断默认路径是否存在,如不存在,手工输入目标文件地址(一般用不着):SEThosts=C:\Windows......
  • 【股票爬虫】我用100行Python代码,爬了雪球网5000只股票,还发现一个网站bug!
    一、爬取目标您好,我是@马哥python说,今天继续分享爬虫案例。爬取网站:雪球网的沪深股市行情数据具体菜单:雪球网>行情中心>沪深股市>沪深一览爬取字段,含:股票代码,......