python实现在函数中修改变量值的方法
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。
实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,
就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,
就不能直接修改原始对象--相当于通过“传值'来传递对象。
python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多。可以用id()来查询内存地址
下面的str_是可修改的对象,因此在add函数中可以修改:
#!/usr/bin/env python #coding=utf-8 def add(s): s += 'b' print "In add function :", s if __name__ == "__main__": str_ = list("aaa") add(str_) print "In main function:", str_
输出为:
In add function : ['a', 'a', 'a', 'b'] In main function: ['a', 'a', 'a', 'b']
下面的str_是不可修改的对象,因此在add函数中不能修改:
#!/usr/bin/env python #coding=utf-8 def add(s): s += 'b' print "In add function :", s if __name__ == "__main__": str_ = "aaa" add(str_) print "In main function:", str_
In add function : aaab In main function: aaa
关于python的复制
如果a=b的话, a和b的地址是相同的;如果只是想拷贝,那么就得用 a=b[:]。
!!!注意这一点,这可是可以引起重大错误的。。。
以上这篇python实现在函数中修改变量值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python使用函数默认值实现函数静态变量的方法
本文实例展示了Python使用函数默认值实现函数静态变量的方法,具体方法如下: 一.Python函数默认值 Python函数默认值的使用可以在函数调用时写代码提供方便,很多时候我们只要使用默认值就可以了. 所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值. 使用类时能够方便的创建类,而不需要传递一堆参数. 只要在函数参数名后面加上 "=defalut_value",函数默认值就定义好了.有一个地方需要注意的是,有默认值的参数必须在函数参数列表
-
python 函数内部修改外部变量的方法
如果内部修改外部变量需要nonlocal,global def f1(): print("in f1..") num=111 def f2(): nonlocal num num=222 print(num) f2() print(num) f1() 以上这篇python 函数内部修改外部变量的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
python中将函数赋值给变量时需要注意的一些问题
前言 本文主要给大家介绍的是关于python将函数赋值给变量时需要注意的一些问题,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 见过两种函数赋值给变量的形式,一种是 a=f 另一种是 a=f() 这两种形式是有区别的,分别总结一下. 1.a=f型属于将变量指向函数. 用代码验证一下: >>> f = abs >>> f(-10) 10 说明变量f现在已经指向了abs函数本身.直接调用abs()函数和调用变量f()完全相同.这是廖雪峰老师python教程
-
python实现在函数中修改变量值的方法
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是"传对象引用"的方式. 实际上,这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典或者列表)的引用, 就能修改对象的原始值--相当于通过"传引用"来传递对象.如果函数收到的是一个不可变对象(比如数字.字符或者元组)的引用, 就不能直接修改原始对象--相当于通过"传值'来传递对象. python一般内部赋值变量的话,都是
-
Python内置函数—vars的具体使用方法
本文文章主要介绍了Python内置函数-vars的具体使用方法,分享给大家,具体如下: 英文文档: vars([object]) Return the __dict__ attribute for a module, class, instance, or any other object with a __dict__ attribute.Objects such as modules and instances have an updateable __dict__ attribute; h
-
Python的bit_length函数来二进制的位数方法
自Python3.1中,整数bit_length方法允许查询二进制的位数或长度. 常规做法: >>> bin(256) '0b100000000' >>> len(bin(256)) - 2 9 >>> 使用函数: >>> bin(256), (256).bit_length() ('0b100000000', 9) >>> X = 99 >>> bin(X), X.bit_length() ('0
-
python 用lambda函数替换for循环的方法
场景如下: 现在有一个dataframe,其中一列为score,值从0-100, df: score 98 88 37 68 86 33 现在需要增加一列level,给这些分数分类,90分以上为A,60-90为B,60以下为C. 常用的方法肯定是使用for循环,对每一行进行处理. import pandas as pd list = [98,88,37,68,86,33] df = pd.DataFrame(list, columns=['score']) # convert list to d
-
python中zip()函数遍历多个列表方法
在对列表的元素进行找寻时,会频繁的说到遍历的理念.对于复杂的遍历要求,如多个列表中查找就显然不适合用for循环.本篇所要带来的是zip() 函数的方法,能够对多个迭代器进行遍历.下面我们就python中zip的说明.语法.使用注意点进行讲解,然后带来遍历多个列表的实例. 1.说明 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表.(注:在python3中返回的是zip对象) 2.语法 zip(iterable, ...) # 其中 it
-
python人工智能tensorflow函数np.random模块使用方法
目录 np.random模块常用的一些方法介绍 例子 numpy.random.rand(d0, d1, …, dn): numpy.random.randn(d0, d1, …, dn): numpy.random.randint(low, high=None, size=None, dtype=‘I’): numpy.random.uniform(low=0.0, high=1.0, size=None): numpy.random.normal(loc=0.0, scale=1.0, si
-
python人工智能tensorflow函数tf.layers.dense使用方法
目录 参数数量及其作用 部分参数解释: 示例 参数数量及其作用 tf.layers.dense用于添加一个全连接层. 函数如下: tf.layers.dense( inputs, #层的输入 units, #该层的输出维度 activation=None, #激活函数 use_bias=True, kernel_initializer=None, # 卷积核的初始化器 bias_initializer=tf.zeros_initializer(), # 偏置项的初始化器 kernel_regul
-
python人工智能tensorflow函数tf.nn.dropout使用方法
目录 前言 tf.nn.dropout函数介绍 例子 代码 keep_prob = 0.5 keep_prob = 1 前言 神经网络在设置的神经网络足够复杂的情况下,可以无限逼近一段非线性连续函数,但是如果神经网络设置的足够复杂,将会导致过拟合(overfitting)的出现,就好像下图这样. 看到这个蓝色曲线,我就知道: 很明显蓝色曲线是overfitting的结果,尽管它很好的拟合了每一个点的位置,但是曲线是歪歪曲曲扭扭捏捏的,这个的曲线不具有良好的鲁棒性,在实际工程实验中,我们更希望得到
-
Python内置函数 next的具体使用方法
Python 3中的File对象不支持next()方法. Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器中检索下一个项目. 如果给定了默认值,则在迭代器耗尽返回此默认值,否则会引发StopIteration. 该方法可用于从文件对象读取下一个输入行. 语法 以下是next()方法的语法 - next(iterator[,default]) 参数 iterator − 要读取行的文件对象 default − 如果迭代器耗尽则返回此默认值. 如果没有给出此默认值,
-
Python中return函数返回值实例用法
在学习return函数时候,还是要知道了解它最主要的函数作用,比如,怎么去实现返回一个值,另外还有就是我们经常会用到的使用return能够进行多值输出,这才是我们需要抓住知识的重点,针对上述所提及的内容,都可以来往下看文章,答案都在文章内容获取哦~ return 添加返回值 return 显示返回对象 返回值接受:value = func() 例子:计算学成最高分 listv = [90,80,88,77,66] # 分数计算return高分 def scoreCalculate(values)
随机推荐
- CSS的margin边界叠加深度剖析图文演示
- ubuntu系统下禁用utc时间的设置方法
- 在Java的Struts框架中ONGL表达式的基础使用入门
- 详解Java实现多种方式的http数据抓取
- python实现从字典中删除元素的方法
- C语言中实现KMP算法的实例讲解
- Android中实现Webview顶部带进度条的方法
- php实现ping
- mysql索引失效的五种情况分析
- NodeJs的fs读写删除移动监听
- jQuery列表拖动排列具体实现
- javascript 分号总结及详细介绍
- Android组件Glide实现图片平滑滚动效果
- php microtime获取浮点的时间戳
- Android实现图片轮播效果
- C#提高编程能力的50个要点总结
- c# 引用类型构造器
- Kotlin基础学习之位运算
- 易语言接入打码平台的方法
- 易语言写宽带连接步骤