Python学习笔记(四):动态类型

Python 动态类型系统的复杂性 Python 是一种动态类型语言,这意味着变量在运行时才会确定类型,而不是像静态类型语言(如 Java、C++)那样,在编译时就明确类型。这种设计使得 Python 更加灵活和易于使用,但也引入了复杂性,尤其是在代码的复杂度和可维护性较高的场景中。 阅读详情

以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话


2013-7-17 19:00 学习笔记

1,在Python中,变量总是一个指向对象的指针,而不是可改变的内存区域的标签:给一变量赋值一个新的值,并不是替换了原始的对象,而是让这个变量去引用完全不同的一个对象。例如:

a = 3;
b = a;
a += 2;
print a,b
结果为:

5 3
但是对于列表、字典以及通过class定义的对象,则存在共享引用的情况。例如:

L1 = [1,2,3]
L2 = L1
L1[0] = 24
print L1,L2
结果为:

[24, 2, 3] [24, 2, 3]
如果需要引用不同的对象,则需要拷贝对象。这可以通过分片技术或copy模块来实现。例如:

L1 = [1,2,3]
L2 = L1[:]		#slice
L1[0] = 24
print L1,L2
结果为:

[24, 2, 3] [1, 2, 3]

或

import copy
L1 = [1,2,3]
L2 = copy.copy(L1) 
L3 = copy.deepcopy(L1) # copy all nested parts
L1[0] = 24
print L1,L2,L3

结果为:

[24, 2, 3] [1, 2, 3] [1, 2, 3]


2,==可以判断值是否相等,而is则可以判断两个变量是否指向了同一个对象。例如:

M = [1,2,3]
L = M
print M==L,M is L

X = [1,2,3]
Y = [1,2,3]
print X==Y,X is Y
结果为:

True True
True False
但是要注意,对于小的整数和小的字符串,Python有缓存机制,不用的时候不会立即回收。例如:

M = 128
L = 128
print M==L,M is L

X = 'hello world'
Y = 'hello world'
print X==Y,X is Y
结果为:

True True
True True




Python数据类型概述:动态类型与强类型的特性 Python的类型系统具有动态类型和强类型两大核心特性。动态类型意味着变量无需声明类型,类型在运行时确定,且变量可以重新绑定到不同类型的对象。强类型则表现为不支持隐式类型转换,类型错误会在运行时被捕获。Python的主要数据类型包括基本类型(如int、str等)和容器类型(如list、dict等)。动态类型提供了灵活性,适合快速原型开发,而强类型则增强了代码的安全性和可维护性。Python 3.5+引入了类型注解,允许开发者可选地添加类型信息,并通过工具如mypy进行静态类型检查。在实践中,合理利用类型注解 阅读详情

相关推荐

Python 学习笔记——Code with mosh课程

Python 学习笔记——Code with mashERP开发日志第一天到第四天:Python3 代码II- Python Basics1- Variables2- Dynamic Typing3- Type Annotation(注释)4- Mutable and Immutable Types5- Strings6- Escape Sequences7- Formatted Strings8...

LoVissy0313的博客 4325

Python学习笔记1--动态类型

学习的语言并不多,大概就是c和c艹了,但是这两种语言对于底层的控制比较严格,对于变量的声明也是比较严格的,我对此深恶痛绝,因为总是记不住要怎么输出,怎么选择,基本上定义变量类型的时候直接用float,但是假期学c++的时候 primer plus告诉我,当年是为了节省空间什么的,现在没有什么必要,但是对于嵌入式系统,那些小内存的系统,控制内存大小就十分有必要了。第一段貌似跑题了。。 Py

AllenLiAnG96的博客 371

Python 动态类型让代码更灵活

动态类型不是“无类型”,而是“类型随需而变”的智慧。它让Python像一把“瑞士军刀”,在快速迭代的场景中得心应手;而类型提示的加入,又让它能“升级”为精密工具,应对更复杂的工程需求。学会驾驭这种灵活性,你就能真正释放Python的潜力!✨。

AI Python 编程之道的博客 931

python动态类型

python编程中最基本的概念:动态类型以及由它提供的多态性 通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。 动态类型语言:   动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如V...

孤的博客 692

VisionPro脚本实战:用C#替代QuickBuild,让复杂定位项目代码更清爽

本文探讨了如何通过C#脚本重构VisionPro复杂定位项目,替代臃肿的QuickBuild架构。通过实战案例展示了脚本化开发如何减少60%代码量并提升35%运行效率,使项目更易维护。文章详细介绍了环境搭建、多模板定位重构及高级技巧,帮助开发者突破QuickBuild限制,实现更高效的视觉应用开发。

weixin_30417487的博客 502

Yolov5实现道路裂缝检测

Yolov5实现道路裂缝检测 参考代码链接 Github代码链接 基于Pytorch的Yolov5道路裂缝检测程序运行说明。大家可以结合我的说明和原文说明使用,有问题欢迎询问。 文章目录Yolov5实现道路裂缝检测环境要求测试训练自己的数据集1.创建dataset.yaml文件2.创建标签文件3.组织文件路径4.选择模型5.开始训练 环境要求 Python 3.8或之后的版本 还要安装requirements.txt文件中所有依赖包,包括1.7及以上版本的torch $ pip install -r req

qq_26751379的博客 2万+

chatgpt赋能python:Python动态类型简介

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

atest166的博客 183

SCCM实战指南:从零搭建企业级Windows自动化部署平台

本文提供了一份详细的SCCM实战指南,手把手教你从零搭建企业级Windows自动化部署平台。内容涵盖环境规划、AD架构扩展、SQL Server配置、SCCM主站点安装,以及最终实现操作系统镜像的自动化部署,旨在帮助IT管理员彻底告别手动装机,实现高效、规范的Windows设备批量管理。

weixin_29251337的博客 638

【Python学习手册(第四版)】学习笔记06-Python动态类型-赋值模型详解

主要介绍Python的动态类型(也就是Python自动为跟踪对象的类型,不需要在脚本中编写声明语句),Python中变量和对象是如何通过引用关联,垃圾收集的概念,对象共享引用是如何影响多个变量的,Python中引用是如何影响相等的概念。

兴焉的博客 1449

手把手教你用YOLOv11-seg-LSCD搞定树脂件瑕疵检测(附数据集与代码)

本文详细介绍了如何使用YOLOv11-seg-LSCD模型进行工业级树脂件瑕疵检测,包括环境配置、数据集构建、模型训练与调优、部署优化等全流程。通过LSCD模块的创新设计,有效提升了气泡、裂纹等微小缺陷的检测精度,适用于各类树脂制品的质量检测场景。

weixin_28677005的博客 418

SQL 通过sum() over(order by ,rownum)实现财务现金日记账实例

SELECT 类型,to_char(发生日期,'yyyy-MM-dd') 发生日期,期初余额,借方金额,贷方金额, (CASE WHEN 借方金额>0 THEN '借' WHEN 贷方金额>0 THEN '贷' ELSE '平' END) 方向, sum(收支金额) over(order by 发生日期, rownum) 余额 FROM( SELECT LX 类型,账户,账号,摘要,发生日期,单据ID, ...

qq_41451794的博客 1023

5. 解释一下 Python 中的动态类型

动态类型指的是在运行时,变量的数据类型是可以改变的。这与静态类型相反,静态类型在编译时就需要明确指定变量的数据类型,并且一旦确定,就不能再改变。在Python中,变量的数据类型是根据其赋值的内容动态确定的。这意味着你可以在不显式声明类型的情况下直接给变量赋值,而解释器会根据值的类型为变量分配相应的数据类型。x = 42 # x是整数类型y = "Hello" # y是字符串类型z = 3.14 # z是浮点数类型在上述例子中,变量x首先被赋值为整数42,因此被解释为整数类型。接着,变量y。

weixin_68551689的博客 1756

FUEL算法解读(一)——框架解读,思维导图可以很清晰看懂算法启动框架,已更新完,图太大放不上来链接在文末

一图看懂FUEL算法节点框架!!!

weixin_43793717的博客 2785

python动态类型的坑_Python学习笔记6——动态类型

其实这都是我前两天通过手机看的博客,感觉get到了新知识、新技能,今天早上挖的坑,因为上午有课(电子技术课程设计,嵌入式系统实验室,学习STM32,以后也许会写这些东西),下午没课了,来填之前和这个早上的坑哈哈,有些强迫症,信奉完美主义,嘿嘿!动态类型(dynamic typing)是Python另一个重要的核心概念。Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为...

weixin_31993699的博客 131

OpenMVS :用 colmap制作自己的数据集 重建(用colmap计算位姿,将位姿转为MVS需要的格式)

数据集制作主要是在windows进行,比较方便。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3325

踩坑实录:C#上位机YOLOv11从2FPS到45FPS,ONNX Runtime GPU加速全解析

算力迁移:将推理核心从CPU迁移至GPU(核心提速手段);内存复用:避免重复分配/释放内存,减少GC压力;维度固定:工业场景固定输入分辨率,关闭动态维度;资源限制:合理限制GPU/CPU/内存占用,避免资源耗尽;解耦设计:推理线程与UI线程解耦,避免跨线程问题。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 572

Python 动态类型的隐患:从灵活性到风险的深度剖析

摘要 Python动态类型虽提供开发灵活性,但也带来显著风险:(1)运行时类型错误隐患,如隐式转换失效、变量类型动态变更及容器类型混杂;(2)接口契约弱化导致协作障碍,函数参数与继承关系缺乏强制类型约束;(3)维护成本增加,代码可读性差且重构易引发隐性错误;(4)性能损耗与安全隐患,包括运行时类型检查开销和类型混淆漏洞。通过类型提示、静态检查工具(如mypy)、显式验证及类型安全容器(如pydantic)等实践,可在保留动态优势的同时有效控制风险。建议在核心逻辑中强化类型安全,平衡灵活性与可靠性。(150字

分享知识,拥抱变化 1451

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Python高级特性】动态类型

Python 是一种动态类型语言,这意味着变量的类型是在运行时确定的,而不是在编译时决定。Python 变量可以在其生命周期中绑定不同类型的值,这与静态类型语言(如 Java、C++)不同,后者要求在编译时就确定变量类型。

冰可乐的数据之路 1296

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python教程:动态类型模型

Python的变量不用声明,赋值之后就可以直接使用,类型是在运行过程中自动确定的,这就是动态类型模型。该模型把变量和对象设计成两个不同的实体,对象是存储数据的地方,对象的类型是由初始值自动决定的,而变量仅仅是对象的引用。变量是通用的,同一个变量名可以引用任何类型的对象。 一,变量、对象和引用 动态类型模型由三部分构成:变量、对象和引用。变量和类型没有任何关系,类型是对象的,变量只是引用对象而已。例如,a=3,a是变量名,Python自动创建一个内存对象,值是3,变量a自动引用对象。 1,变量 对于一个变量

python学习者的博客 1661

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python 动态类型性能_Python 动态类型

动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关。1. 动态类型在我们接触的对象中,有一类特殊的对象,是用于存储数据的。常见的该类对象包括各种数字,字符串,表,词典。在C语言中,我们称这样一些数据结构为变量。而在Python中,这些是对象。对象...

weixin_35947010的博客 284

python动态类型是如何实现的_Python 的动态类型系统

Python 与 ABC 的一个重要区别在于其类型系统。ABC 采用静态类型,编译器会检查程序中的变量类型是否保持一致,如果不一致,程序就无法运行。并且,ABC与当时大多数静态语言不同,采用的是类型推导(和 Haskell 一样),而不是类型声明(比如 C 语言)。而 Python 采用动态类型,所有类型检查都是在程序运行过程中,而不是编译时进行的。不过,Python 的类型系统与 ABC 也没有...

weixin_39571179的博客 287

Python中的鸭子类型:理解动态类型的力量

Python鸭子类型(Duck Typing)是一种动态类型机制,强调对象行为而非类型声明。核心思想是"如果一个对象像鸭子一样行走和叫,它就可以被视为鸭子"。这种机制使得代码更灵活简洁,允许处理任何具有预期方法的对象,但可能带来运行时错误和调试困难。典型应用包括插件系统、框架开发和数据处理。鸭子类型体现了EAFP原则,通过直接尝试操作并捕获异常来简化代码。虽然提高了扩展性和复用性,但也需注意潜在的可读性和调试问题。合理使用鸭子类型能编写更高效的Python程序。

软件科学-郝学胜 5015

Python——动态类型

一直以来都觉得Python是一种很“简单”的语言,它的确是一门“简单"的语言,但是我们常常把它想的过于"简单"。我们常常停留在怎么用Python,现在大部分书籍都在讲基于Python的应用,很少有人关注Python语言本身。我也是今天面试才突然产生一个疑问:你真的懂python吗? a=3 a='liu' 上面是Python最简单的语句,熟悉C/C++的程序员应该会想,变量没有声明类型,并且...

qq_30024069的博客 298

Python 的动态类型介绍

变量的类型实在运行过程中自动决定的,而不是通过声明来决定的变量首次赋值时,创建它。之后的再次赋值会改变该变量的值2.类型的概念是存在于对象中而不是变量名中。变量名是通用的,它只是在特定时刻引用某个特定的对象而已。当变量出现在表达式中时,它会马上被当前引用的对象所代替任何变量名在使用前必须明确地赋值。用未赋值的变量会产生错误。在Python内部,变量实际上是指向对象内存空间的一个指针graph LRid1(变量名)-->|引用|id2(对象);

yygr的博客 489
上一篇: Python学习笔记(三):数字
下一篇: Python学习笔记(五):字符串
mathboylinlin
博客等级 码龄18年 101粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值