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

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的地址一致

相关文章:

  • k8s1.27集群部署mysql8.0双主双从
  • 第二道re
  • UE 材质基础第二天
  • 线光谱共焦传感器:复杂材质检测
  • 【盈达科技】GEO优化实战策略
  • 基于PetaLinux的Zynq PS应用自启动全攻略
  • 浙江大学python程序设计(陈春晖、翁恺、季江民)习题答案-第五章
  • 大模型(1)——基本概念
  • 达梦数据库对json字段进行操作
  • C++开源库argh使用教程
  • Qt Widgets模块功能详细说明,基本控件:QCheckBox(三)
  • JAVA Web 期末速成
  • DeepSeek 赋能机器人研发:从技术革新到场景落地
  • 【C/C++】C语言内存操作与字符串处理汇总
  • 简单实现网页加载进度条
  • Bootstrap 5 容器与网格系统详解
  • Java中的流详解
  • 2025ICPC邀请赛南昌游记
  • 【C语言基础语法入门】通过简单实例快速掌握C语言核心概念
  • 安防综合管理系统EasyCVR视频融合平台安防知识:门禁系统与视频监控系统如何联动?
  • 照护者说|胡泳:向死而在,爱这个世界
  • 再囤三个月库存!美国客户抢付尾款,外贸企业发货订单排到7月
  • 人民日报:不能层层加码,要层层负责
  • 复旦大学艺术馆开馆:以当代视角再看文科文脉
  • 《缶翁的世界》首发:看吴昌硕王一亭等湖州籍书画家的影响
  • 山东发布高温橙警:预计19日至21日局地可达40℃