当前位置: 首页 > java >正文

Python的传参过程的小细节

        Python钟所有的参数传递都是"按对象引用传递"。这意味着,对于不可变对象(如整数、字符串、元组),函数内修改形参不会影响实参,因为修改时会创建新对象;对于可变对象(如列表、字典、集合),函数内修改形参的内容会直接影响实参,因为操作的是同一对象。

        由于上述性质,所以如果事先定义了一个变量(如np数组,类型为np.float32),将此变量赋值为一个函数的返回结果(例如函数内都是涉及到np.int32的运算),则返回结果为np.int32类型,且此变量的内存地址跟原先声明的变量的地址不一致。这一点与规则较严格的C++不同,需注意!

# C通过返回值的形式进行赋值
import numpy as np
def add():A = np.array([[100,200],[300,400]], dtype=np.int32)B = np.array([[100,200],[300,400]], dtype=np.int32)C = A + Breturn CC = np.ndarray((2,2),dtype=np.float32)      # 此时C.dtype为np.float32, id(C)=1894631025520
C = add()                                   # 此时C.dtype为np.int32, id(C)=1894631025040,此地址与函数内C=A+B的地址一致
http://www.xdnf.cn/news/7313.html

相关文章:

  • 什么是5G前传、中传、回传?
  • 数据分析—Excel数据清洗函数
  • Compose Kotlin Multiplatform跨平台基础运行
  • CM0启动CM7_0、CM7_1注意事项
  • PCB设计教程【入门篇】——电路分析基础-基本元件(电阻电容电感)
  • Docker 入门指南:从安装配置到核心概念解析
  • [ 计算机网络 ] | 宏观谈谈计算机网络
  • 十三、Hive 行列转换
  • 计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
  • netcore项目使用winforms与blazor结合来开发如何按F12,可以调出chrome devtool工具辅助开发
  • 通过低功耗蓝牙通信实例讲透 MCU 各个定时器
  • AT 指令详解:基于 MCU 的通信控制实战指南AT 指令详解
  • ESP32开发-两个WIFI设备的通讯搭建
  • AI大模型从0到1记录学习numpy pandas day25
  • 无人设备遥控器之数据压缩与编码技术篇
  • PLC组网的方法、要点及实施全解析
  • android13以太网静态ip不断断开连上问题
  • C++(24):容器类<list>
  • Unreal 从入门到精通之SceneCaptureComponent2D实现UI层3D物体360°预览
  • MAC常用操作整理
  • MAC电脑中右键后复制和拷贝的区别
  • C++:与7无关的数
  • 基于 Vue 和 Node.js 实现图片上传功能:从前端到后端的完整实践
  • 汽车零部件的EMI抗扰性测试
  • Java中的流详解
  • vue3 vite 路由
  • 容器化-K8s-镜像仓库使用和应用
  • Ubuntu Desktop QEMU/KVM中使用Ubuntu Server 22.04配置k8s集群
  • k8s1.27集群部署mysql8.0双主双从
  • psotgresql18 源码编译安装