我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python动态类型简介

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python动态类型简介

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

下载Word文档

猜你喜欢

Python动态类型简介

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

python的数据类型简介

ipython:原生python不具有命令行补全等功能,这个工具提供了类似shell的功能,方便学习使用安装:wget https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86
2023-01-31

Response.ContentType 类型简介

Response.ContentType 类型是一个枚举类型,用来表示 HTTP 响应的 Content-Type 类型。Content-Type 是一个用来指定响应体的格式和编码的 HTTP 头部字段。常见的 Content-Type 类
2023-09-14

Python数据类型简介之numpy

本篇文章给大家带来了关于Python的相关知识,其中主要整理了numpy数据类型的相关问题,包括了numpy的基本数据类型、numpy自定义复合数据类型、使用ndarray保存日期数据类型等等内容,下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频教程 】1. numpy 的基本数据类型类型名类型表示符布尔型bool有符号整数型int8 / int16 / int32 / int64
2022-08-08

Python进阶09 动态类型

动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关。动态类型在我们接触的对象中,有一类
2023-06-02

Python的类、继承和多态简单介绍

这篇文章主要讲解了“Python的类、继承和多态简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的类、继承和多态简单介绍”吧!类的定义假如要定义一个类 Point,表示二维
2023-06-17

Python学习笔记6——动态类型

参考博客:Python进阶09 动态类型  Python深入06 Python的内存管理 都是非常棒的文章其实这都是我前两天通过手机看的博客,感觉get到了新知识、新技能,今天早上挖的坑,因为上午有课(电子技术课程设计,嵌入式系统实验室,学
2023-01-30

简单介绍Python中的几种数据类型

大体上把Python中的数据类型分为如下几类:Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",hello List(列表
2022-06-04

简介Python的collections模块中defaultdict类型的用法

defaultdict 主要用来需要对 value 做初始化的情形。对于字典来说,key 必须是 hashable,immutable,unique 的数据,而 value 可以是任意的数据类型。如果 value 是 list,dict 等
2022-06-04

ADO.NET数据类型ParameterDirection属性简介

ParameterDirection属性是ADO.NET中的一个枚举,用于指定参数的类型。它有以下几个可能的值:- Input:表示参数是一个输入参数,用于传递值给数据库。- Output:表示参数是一个输出参数,用于从数据库返回值。- I
2023-09-23

【⑬MySQL | 数据类型(一)】简介 | 整数 | 浮点 | 定点类型

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL数据类型简介 | 整数 | 浮点 | 定点类型的分享✨ 目录 前言0.数据类型简介1 整数类型2 浮点类型3 定点类型4 日期/时间类型总结 0
2023-08-24

Python中不同类型的标识符及其用途简介

Python标识符的种类及用法简介标识符是Python中用来命名变量、函数、类等的名称。在Python中,标识符包括变量名、函数名、类名等,它有一定的命名规则和约定。本文将介绍Python标识符的种类及其用法,并提供具体的代码示例。变量名变
Python中不同类型的标识符及其用途简介
2023-12-29

腾讯云服务器实例类型简介

1.通用型实例腾讯云的通用型实例是适用于大多数应用场景的基础实例类型。它们提供了均衡的计算、内存和存储资源,适用于中小型网站、应用程序和数据库等常见工作负载。2.计算优化型实例计算优化型实例在处理器性能方面具有优势,适用于需要高性能计算的工作负载。这些实例通常配备了更强大的处理器和更高的内存容量,适用于大规模数据处理、
腾讯云服务器实例类型简介
2023-10-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录