python实现在函数中修改变量值的方法
作者:Bobsweetie 发布时间:2023-12-15 04:15:02
标签: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[:]。
!!!注意这一点,这可是可以引起重大错误的。。。
来源:https://blog.csdn.net/Bobsweetie/article/details/68483083


猜你喜欢
- SocketServer创建一个网络服务框架。它定义了类来处理TCP,UDP, UNIX streams 和UNIX datagrams上的
- char与varchar的区别来源:https://www.cnblogs.com/ZhuChangwu/p/15118290.html
- 如何进行 Python 性能优化,是本文探讨的主要问题。本文会涉及常见的代码优化方法,性能优化工具的使用以及如何诊断代码的性能瓶颈等内容,希
- 简介这里通过python的绘图工具Matplotlib包可视化实现机器学习中的KNN算法。 需要提前安装python的Numpy和Matpl
- 作为近两年来最火的编程语言的python,受到广大程序员的追捧必然是有其原因的,如果要挑出几点来讲的话,第一条那就python语法简洁,易上
- 打开VB6,新建ActiveX DLL 2、在工程引用中加入Microsoft Active Server Pages Object Lib
- 目标:文件的概念文件的基本操作文件/文件夹的常用操作文本文件的编码方式1.文件的概念1.1文件的概念和作用计算机的文件,就是存储在某种长期存
- <!--#include file="Include/Conn.asp"--><%If(Request
- seek()方法在偏移设定该文件的当前位置。参数是可选的,默认为0,这意味着绝对的文件定位,它的值如果是1,这意味着寻求相对于当
- 前言PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数
- 如何同时处理数据库和页面错误? If Err.Number = 0 And ob
- 问:怎样解决mysql连接过多的错误?答:系统不能连接数据库,关键要看两个数据:1、数据库系统允许的最大可连接数max_connection
- 问题一般在服务器上进行环境安装的时候有多种方式,比如docker, conda等。conda肯使用起来更加简便,docker更适合服务器部署
- 1、遇到的问题:numpy版本im_data = dataset.ReadAsArray(0,0,im_width,im_height)#获
- pil版:from PIL import Imagefilename = r'E:\data\yangben\0.jpg'i
- 本文实例讲述了Python实现将Excel转换为json的方法。分享给大家供大家参考,具体如下:#-*- encoding:utf-8 -*
- 目录前言什么是 websocketwebsocket 通信原理和机制websocket 的特点构建实时日志跟踪的小例子前言websocket
- 一、用属性替代 getter 或 setter 方法以下代码中包含手动实现的 getter(get_ohms) 和 setter(set_o
- 起因事情是这样的,项目最近有个需求。服务器有个图片空间,说白了就是个文件夹。文件夹的结构大家都知道,一层一层的。然后需要在前端以树形展示。具
- 前言当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于python的个性化音乐播放器,现在分享给你们。开发组件py