【从零开始学Python】 第一课 Python 的动态类型介绍

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

Python 的动态类型介绍

1.在Python中没有变量的声明以及变量的类型:

  • 变量的类型实在运行过程中自动决定的,而不是通过声明来决定的
  • 变量首次赋值时,创建它。之后的再次赋值会改变该变量的值

2.类型的概念是存在于对象中而不是变量名中。变量名是通用的,它只是在特定时刻引用某个特定的对象而已。

  • 当变量出现在表达式中时,它会马上被当前引用的对象所代替
  • 任何变量名在使用前必须明确地赋值。用未赋值的变量会产生错误。

在Python内部,变量实际上是指向对象内存空间的一个指针

graph LR
id1(变量名)-->|引用|id2(对象);
style id2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5;

3.每个表达式生成的结果,python都创建了一个新的对象去表示这个值

4.Python对象缓存了不变的对象并对其进行复用,如小整数和小字符串。但是逻辑上看,每个表达式的结果值都是不同的对象,占用不同的内存。

5.每个对象都有两个标准的头部信息:

  • 类型标志符:标识了该对象的类型(见第10条)

  • 引用计数器:决定了是否可以回收这个对象(见第8条)

    引用计数器记录了当前指向该对象的引用的数目。一旦它为0,
    则该对象的内存空间就会自动回收

6.给一个变量赋新值,并不是替换原始的对象,而是让这个变量去引用完全不同的一个对象。

7.多个变量名引用同一个对象时,称为共享引用:

graph LR
id1(变量a) -->|引用|id2(对象)
id3(变量b) -->|引用|id2(对象)
style id2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5;
  • 在共享引用中,对象的原地修改操作会影响到所有的引用该对象的变量

  • 共享引用的多个变量之间,is比较的结果为True

    ==操作符比较的是两个变量引用的对象是否具有相同的值

    is操作符比较的是两个变量是否引用的是同一个对象

8.sys模块的getrefcount函数会返回对象的引用次数,如:

这里可以看到Python对象缓存了不变的对象并对其进行复用

9.动态类型是Python多态的基础,因为没有类型约束。Python的多态是x.method的方法运行时,method的意义取决于x的类型,属性总是在运行期解析。

10.查看对象的类型用type()函数,如:

11.Python提供了几种方法来查看对象的属性以及详细信息:

  • dir(x):查看x所指对象的属性
  • help(x.attr):查看x所指对象的attr属性
  • help(x):查看x所指对象的详细信息

12.None对象是一个特殊的Python对象,它总是False,一般用于占位。它有一块内存,是一个真正的对象。它不代表未定义,事实上它有定义。

  • None是所有函数和方法的默认返回值

13.Python中,任何东西都是对象类型(见第10条),类型本身也是对象类型:

  • type(x)返回变量x指向对象的类型
  • isinstance(x,typename)用于测试x所指对象是否是typename类型
  • 调用类型名是对这些对象构造函数的调用,而不仅仅是类型转换

14.基本上在代码中进行类型检查是错误的,着破坏了代码的灵活性,限制了代码的类型。Python代码不关心特定的数据类型,只关心接口,这就是Python的多态设计

  • 一个操作的意义取决于被操作对象的类型。同样的操作对不同的对象来说意义可能不同,前提是该对象支持该操作
  • 若对象不支持某种操作,则Python会在运行时检测到错误并自动抛出一个异常

15.Python可以在旧版本中开启新版本的特性,只需用在模块文件中使用:
from __future__ import 特性名

下一篇将会分享《数字类型》

想提前获取最新教程吗?可添加我助理微信获取最新资源信息。扫描下方二维码添加即可

Python库 | stroke-2.3.1-py3-none-any.whl 资源分类:Python库 所属语言:Python 资源全名:stroke-2.3.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059 立即下载

相关推荐

OpenRA引擎实战:如何从零开始搭建一个经典RTS游戏模组(附资源包)

本文详细介绍了如何利用开源游戏引擎OpenRA从零开始搭建经典RTS游戏模组。内容涵盖开发环境配置、资源管线处理、YAML规则定义、地图编辑与Lua脚本编写等全流程实战指南,并提供了资源包,帮助开发者和爱好者快速创建属于自己的即时战略游戏世界。

silver的专栏 904

python动态类型

最近关注着python,越来越喜欢它了。下面是我看python的学习手册学习到的理论,给大家分享一下: 如果你有静态编译类型语言c,c++,java的背景,你也许有些困惑。我们在使用变量时,都没有声明变量的存在和类型,并且变量还可以工作。例如,在交互会话模式或是程序文件中,

chenjinyu的专栏 3486

从接线到组态:手把手教你搞定PROFIBUS-DP与PA的混合网络搭建(基于西门子TIA Portal)

本文详细介绍了PROFIBUS-DP与PA混合网络的搭建方法,基于西门子TIA Portal平台,从硬件选型、网络架构设计到组态配置和现场调试,提供了一套完整的实战指南。重点解析了DP/PA耦合器的使用、地址映射策略及网络诊断技巧,帮助工程师高效构建高可靠性的工业自动化网络。

weixin_32103009的博客 302

python动态生成类&动态生成方法

python动态生成类&动态生成方法

喵酱 1310

【机器学习—评估指标】混淆矩阵、准确率、精确率、召回率、F1分数、ROC曲线和AUC

机器学习评价指标是衡量模型性能的关键工具。本文介绍了常见指标及其计算方法:1.混淆矩阵展示分类预测结果分布,包含TP、TN、FP、FN四个基础指标;2.准确率反映整体预测正确率;3.精确率关注预测正例的准确性;4.召回率衡量正例检出能力;5.F1分数综合平衡精确率和召回率;6.ROC曲线通过TPR与FPR的权衡关系评估模型性能,AUC值量化区分能力。文章详细说明了各指标的定义、计算公式、适用场景及局限性,并通过Python代码示例演示了具体实现方法,特别对ROC曲线和AUC的计算原理进行了深入解析。

weixin_51375278的博客 6745

MinIO vs 华为云OBS:成本、性能与兼容性深度对比(含实测数据)

本文深度对比了开源对象存储MinIO与华为云OBS在成本、性能、兼容性及运维方面的核心差异。通过实测数据与全生命周期成本分析,为技术决策者提供选型依据。文章指出,MinIO在长期成本控制、性能深度优化及S3 API兼容性方面优势显著,而华为云OBS则提供开箱即用的便利性。

kmeans3miner的博客 593

Python分享之动态类型

我们看到,即使是多个引用指向同一个对象,如果一个引用值发生变化,那么实际上是让这个引用指向一个新的引用,并不影响其他的引用的指向。表实际上是包含了多个引用的对象(每个引用是一个元素,比如L1[0],L1[1]..., 每个引用指向一个对象,比如1,2,3),。而L1[0] = 10这一赋值操作,并不是改变L1的指向,而是对L1[0], 也就是表对象的一部份(一个元素),进行操作,所以所有指向该对象的引用都受到影响。通过赋值,引用a指向对象3。引用和对象的分离,对象是内存中储存数据的实体,引用指向对象。

242

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1528

Python 的动态类型介绍

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

yygr的博客 489

Python爬虫-爬取猫眼演出数据

本文是该专栏的第53篇,后面会持续分享python爬虫干货知识。猫眼平台除了有影院信息之外,它还涵盖了演出信息,比如说“演唱会,音乐节,话剧音乐剧,脱口秀,音乐会,戏曲艺术,相声”等等各种演出相关信息。而本文,笔者将以猫眼平台为例,基于Python爬虫实现获取各种演出信息的数据。废话不多说,具体细节部分以及详细思路逻辑,笔者将在正文结合完整代码进行详细说明。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 568

《时序分析、时序约束和时序收敛》专栏的说明与导航

《时序分析、时序约束和时序收敛》专栏的说明与导航(建议阅读)。

孤独的单刀 14万+

【零基础学Python】动态类型、注释、输入与输出

动态类型使用起来更方便、更灵活,但这也导致了它可能会出现许多问题,所以动态类型也是有利有弊的。

weixin_51983604的博客 1402

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【python3 for beginner】python基础第一课

Python是一种高级、通用、解释型的编程语言简洁易读:Python采用简洁的语法和缩进风格动态类型:Python是一种动态类型语言,变量的类型是在运行时确定的,不需要在代码中显式声明变量类型面向对象:Python支持面向对象编程,允许定义类和对象,并使用面向对象的概念如封装、继承和多态。模块化:Python支持模块化编程,允许将代码组织成模块和包,提高代码的复用性和可维护性。动态性:Python具有动态性,允许在运行时修改变量、类和函数等,使得开发过程更加灵活。

qq_42476938的博客 1288

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

从零开始学Python自动化运维

自动化运维是指利用脚本和工具来自动化日常运维任务,如服务器配置、部署、监控、备份和恢复等。通过自动化,可以大大减少人工操作的错误,提高运维效率,快速响应问题。通过本篇文章,我们学习了从零开始学Python自动化运维的基本概念和实用技巧。从SSH登录和文件传输,到监控与报警,再到实战案例的自动化部署Web应用,我们一步步深入了解了Python在自动化运维中的强大功能。掌握这些技能,你将能够显著提升运维效率,快速响应问题,为企业的稳定运行保驾护航。

Candyz7的博客 1943

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Python从零开始第一课

Python从零开始第一课 IDLE 常用快捷键 注意事项: 1、不要再程序中,行开头增加空格。空格在Python中有缩进的含义。 2、符号都是英文符号,不是中文。比如() () ...

colari的博客 214

windows学python_从零开始学Python—第一课:初识Python

原标题:从零开始学Python—第一课:初识Python从今天起,我们针对着手开始学Python的小白,整理了一套系统的教程,所以,新手伙伴们,你们的福音来咯!希望接下来的每一期教程,你都能吸收掌握!下面开启我们的Python之旅! Python的简介Python是由荷兰人吉多·范罗苏姆(Guido von Rossum,后面都称呼他为Guido)发明的一种编程语言。Python的历史1989年圣...

weixin_42519514的博客 244

从零开始学python电子书-从零开始学Python程序设计 PDF

给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python、程序设计方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小22379 MB M,吴惠茹,等编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.2。内容介绍《从零开始学Python程序设计》Python使用IO模块来处理数据流,即以文字和二进制数据配合功能强大的内置函数open()。GUI以tkinter为主...

weixin_37988176的博客 434

从零开始学python电子书-从零开始学Python程序设计 PDF 完整影印版

给大家带来的一篇关于Python零基础相关的电子书资源,介绍了关于从零开始、Python、程序设计方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小172 MB,吴惠茹编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.2。内容介绍Python語言是面向对象编程的模块化語言,它便于学习培训、便于维护保养、易读性强,合适新手作为新手入门编程语言。《从零开始学Python程序设计》以...

weixin_37988176的博客 318

从零开始学Python—第一课:初识Python

从今天起,我们针对着手开始学Python的小白,整理了一套系统的教程,所以,新手伙伴们,你们的福音来咯!希望接下来的每一期教程,你都能吸收掌握!下面开启我们的Python之旅! Python的简介 Python是由荷兰人吉多·范罗苏姆(Guido von Rossum,后面都称呼他为Guido)发明的一种编程语言。 Python的历史 1989年圣诞节:Guido开始写Python语言的编译器。 1991年2月:第一个Python解释器诞生,它是用C语言实现的,可以调用C语言的库函数。 .

chen801090的博客 511

python为什么是动态类型_01. Python 的动态类型介绍

作者:华校专email:huaxz1986@163.com**本文档可用于个人学习目的,不得用于商业目的**Python 的动态类型介绍1.在Python中没有变量的声明以及变量的类型:变量的类型实在运行过程中自动决定的,而不是通过声明来决定的变量首次赋值时,创建它。之后的再次赋值会改变该变量的值2.类型的概念是存在于对象中而不是变量名中。变量名是通用的,它只是在特定时刻引用某个特定的对象而已。当...

weixin_39794385的博客 192

从零开始学Python

Python编程,从入门到实践》这本书是美国的Eric Matthes的著作,这本书是一本针对所有层次的Python 读者而作的Python 入门书。通过这本书,我从零基础开始学习Python。。打开Pyhton官网,点击Download,就能下载Python的各个版本。按住Shift键并点击右键,选择“在此处打开PowerShell窗口”,输入python,出现Python提示符(>>>),就说明系统安装了Python,我使用的是Windows系统,安装的Python3.7.9版本。

2402_84205067的博客 593

从零开始学Python AI开发系列08

在上一课的内容中,我们了解了Anaconda和Jupyter Notebook的使用。 我们创建了自己的第一个Python项目,并编写了第一行Python代码。 而在接下来的内容中,我们将学习variable(变量)的概念。 如果你学过其它的编程语言,那么可以跳过这部分内容。 如果你是个完全的新手,那么建议你一步步跟着向前。 在接下来的内容中,我们将学习以下知识: 1.什么是变量 2...

256

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

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

weixin_35947010的博客 284
上一篇: 如何系统的学习Python?
下一篇: 【Python学习实践教程】10个Python经典项目实战,练手必备
黑客老许
博客等级 码龄8年 6153粉丝 1028原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值