iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python动态类型简介
  • 668
分享到

Python动态类型简介

类型简介动态 2023-01-31 07:01:15 668人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

在C语言中使用变量, 需先声明其类型, 如int a = 3, 而python中直接 a = 3就行, Python怎么知道那代表了一个整数呢? 在Python中类型是在运行过程中决定的, 而不是事先声明的. 像上面Python中运行赋值语

C语言中使用变量, 需先声明其类型, 如int a = 3, 而python中直接 a = 3就行, Python怎么知道那代表了一个整数呢? 



在Python中类型是在运行过程中决定的, 而不是事先声明的. 像上面Python中运行赋值语句 a = 3, 代码中没有说明a是整数对象类型, 但一样也能工作, 可按如下思路来理解该原由.


变量创建: 一个变量, 就像a, 当代码第一次给它赋值时就创建了它, 之后的赋值将会改变已创建的变量名的值.


变量类型: 变量永远不会有任何的和它关联的类型信息或约束. 类型的概念是存在于对象中而不是变量名中. 变量原本是通用的, 它只是在一个特定的时间点, 简单地引用了一个特定的对象而已.


变量使用: 当变量出现在表达式中时, 它会马上被当前引用的对象所代替, 无论这个对象是什么类型. 此外, 所有的变量必须在其使用前明确的赋值, 使用未赋值的变量会产生错误.



动态语言的类型和静态语言的有明显不同, 若能清楚的将变量名和对象划分开来, 动态类型是很容易理解的.


>>> a = 3


从上面的概念来看, Python会执行三个步骤去完成这个操作:

1. 创建一个对象来代表值3.


2. 创建一个变量a, 如果它还没有创建的话.


3. 将变量与新的对象3相连接.


效果图如下所示, 变量和对象保存在内存中不同的部分, 并通过连接相关联.

ref.jpg


上面过程, 使用具体的术语来讲呢:

· 变量名是一个系统表的元素, 拥有指向对象空间的连接.


· 对象是分配的一块内存, 有足够的空间去表示它所代表的值.


· 引用是自动形成的从变量名到对象的指针.



类型属于对象, 而不是变量

Python中, 变量名没有类型, 对象才有类型. Python在每个对象上保存了类型标识, 和引用计数. 像下面变量a由引用整数3, 改变为引用字符串'spam'后, 3这个对象会发生什么变化呢, 进入下一个话题.


>>> a = 3

>>> a = 'spam'



对象的垃圾收集机制

上面说到了, Python在每个对象上保持了一个计数器, 其记录了指向该对象的引用数目, 一旦计数器被设置为0, 该对象的内存空间就会自动回收.


可以通过sys模块中的getrefcount函数, 查看对象的引用计数.

>>> import sys

>>> sys.getrefcount('spam')

3


若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).

qrcode_for_gh_54ffa7e55478_258.jpg

--结束END--

本文标题: Python动态类型简介

本文链接: http://www.lsjlt.com/news/190946.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python动态类型简介
    在C语言中使用变量, 需先声明其类型, 如int a = 3, 而Python中直接 a = 3就行, Python怎么知道那代表了一个整数呢 在Python中类型是在运行过程中决定的, 而不是事先声明的. 像上面Python中运行赋值语句...
    99+
    2023-01-31
    类型 简介 动态
  • python的数据类型简介
    ipython:原生python不具有命令行补全等功能,这个工具提供了类似shell的功能,方便学习使用安装:wget https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86...
    99+
    2023-01-31
    数据类型 简介 python
  • Response.ContentType 类型简介
    Response.ContentType 类型是一个枚举类型,用来表示 HTTP 响应的 Content-Type 类型。Conte...
    99+
    2023-09-14
    类型
  • Python进阶09 动态类型
    动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关。动态类型在我们接触的对象中,有一类...
    99+
    2023-06-02
  • Python的类、继承和多态简单介绍
    这篇文章主要讲解了“Python的类、继承和多态简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的类、继承和多态简单介绍”吧!类的定义假如要定义一个类 Point,表示二维...
    99+
    2023-06-17
  • Python学习笔记6——动态类型
    参考博客:Python进阶09 动态类型  Python深入06 Python的内存管理 都是非常棒的文章 其实这都是我前两天通过手机看的博客,感觉get到了新知识、新技能,今天早上挖的坑,因为上午有课(电子技术课程设计,嵌入式系统实验室...
    99+
    2023-01-30
    学习笔记 类型 动态
  • Java动态代理简单介绍
    目录1.代理模式2.静态代理实现3.动态代理实现1.代理模式 当我们需要调用某个类(具体实现类)的方法时,不直接创建该类的对象,而是拿到该类的代理类对象,通过代理对象,调用具体实现类...
    99+
    2024-04-02
  • [python]数据类(dataclass)简介
    文章目录 数据类定义装饰器field初始化数据比较后处理 dataclasses方法 Python3.7引入了dataclass。dataclass装饰器可以声明Python类为...
    99+
    2023-10-20
    python dataclass field 装饰器
  • ADO.NET数据类型ParameterDirection属性简介
    ParameterDirection属性是ADO.NET中的一个枚举,用于指定参数的类型。它有以下几个可能的值:- Input:表示...
    99+
    2023-09-23
    ADO.NET
  • JavaScript事件类型的简单介绍
    这篇文章主要讲解了“JavaScript事件类型的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript事件类型的简单介绍”吧!DOM事...
    99+
    2024-04-02
  • ASP.NETCore应用启动Startup类简介
    1.前言 Core与早期版本的 ASP.NET 对比,配置应用程序的方式的 Global.asax、FilterConfig.cs和RouteConfig.cs 都被Program....
    99+
    2024-04-02
  • 【⑬MySQL | 数据类型(一)】简介 | 整数 | 浮点 | 定点类型
    前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL数据类型简介 | 整数 | 浮点 | 定点类型的分享✨ 目录 前言0.数据类型简介1 整数类型2 浮点类型3 定点类型4 日期/时间类型总结 0...
    99+
    2023-08-24
    mysql android 数据库
  • Groovy动态语言使用教程简介
    目录Groovy 简介Groovy 应用Groovy 与 JavaGroovy语法特性(相比于Java)Groovy 简介 Groovy 是构建在 JVM 上的一个轻量级却强大的动态...
    99+
    2024-04-02
  • Python中不同类型的标识符及其用途简介
    Python标识符的种类及用法简介标识符是Python中用来命名变量、函数、类等的名称。在Python中,标识符包括变量名、函数名、类名等,它有一定的命名规则和约定。本文将介绍Python标识符的种类及其用法,并提供具体的代码示例。变量名变...
    99+
    2023-12-29
    Python (Python) 标识符 (identifier) 用法 (Usage)
  • MySQL中decimal类型用法的简单介绍
    MySQL中支持浮点数的类型有FLOAT、DOUBLE和DECIMAL类型,DECIMAL 类型不同于FLOAT和DOUBLE,DECIMAL 实际是以串存放的。DECIMAL 可能的最大取值范围与DOUB...
    99+
    2024-04-02
  • 腾讯云服务器实例类型简介
    1. 通用型实例 腾讯云的通用型实例是适用于大多数应用场景的基础实例类型。它们提供了均衡的计算、内存和存储资源,适用于中小型网站、应用程序和数据库等常见工作负载。 2. 计算优化型实例 计算优化型实例在处理器性能方面具有优势,适用于需要高...
    99+
    2023-10-28
    腾讯 实例 类型
  • Python~~简介介绍
    Python (英国发音:/paθn/ 美国发音:/paθɑn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于...
    99+
    2024-04-02
  • Python 之 Pandas DataFrame 数据类型的简介、创建的列操作
    文章目录 一、DataFrame 结构简介二、DataFrame 对象创建1. 使用普通列表创建2. 使用嵌套列表创建3 指定数值元素的数据类型为 float4. 字典嵌套列表创建5. 添加自...
    99+
    2023-08-31
    pandas python 数据分析
  • Python——简介
    1、Python社区 Pypi:https://pypi.org/GitHub:https://github.com/StackOverFolw:https://stackoverflow.com/开源中国:https://www.osc...
    99+
    2023-01-31
    简介 Python
  • Python-简介
      @ Python的由来    Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Pyt...
    99+
    2023-01-30
    简介 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作