Python基础(2) - 动态数据类型
2014-01-15 15:22
351 查看
Python是一门强类型语言,单定义变量时不需要制定类型。
C#这样定义变量:
VB这样定义变量:
Python不需要制定类型,给变量赋什么类型的值,它就是什么类型。(穿神马就是神马?)
※个人理解:
Python内一切皆对象,int也是,string也是,类也是。
变量var所存储的只是一个地址(指针),该地址指向具体的类型数据。切该地址对于不同的数据类型兼容,int的地址和类的地址没区别。
给变量var赋值的过程只是替换地址的过程,地址指向的是什么类型var并不关心。
以上代码表明变量i指向的地址改变了,而不是i的值发生了变化。
综上,Python中变量不强制制定类型;变量赋值时确定类型;变量类型可变。
相对的,C#的var声明的类型,第一次赋值后类型就不可再变,Python更加灵活。
缺点:同一个变量出现不同的地方可能类型都不同,造成阅读困难。对于类型的校验全部推到运行时,需要写代码的人自我约束。IDE识别变量困难。
说实话,我并不觉得Python的这个动态数据类型是个好东西。
总则:Python基础 - 总则
上一篇:Python基础(1) - 初识Python
下一篇:Python基础(3) - 数据类型:1数字类型
C#这样定义变量:
int i = 10;
VB这样定义变量:
Dim i As Integer = 10
Python不需要制定类型,给变量赋什么类型的值,它就是什么类型。(穿神马就是神马?)
>>> var = 10 >>> type(var) <type 'int'> >>> var = 'string' >>> type(var) <type 'str'> >>> var = [1,2] >>> type(var) <type 'list'> >>> var = (1,) >>> type(var) <type 'tuple'> >>> var = {1:'a'} >>> type(var) <type 'dict'> >>>
※个人理解:
Python内一切皆对象,int也是,string也是,类也是。
变量var所存储的只是一个地址(指针),该地址指向具体的类型数据。切该地址对于不同的数据类型兼容,int的地址和类的地址没区别。
给变量var赋值的过程只是替换地址的过程,地址指向的是什么类型var并不关心。
>>> i = 0 >>> id(i) 23897828 >>> i = 10 >>> id(i) 23897708 >>>
以上代码表明变量i指向的地址改变了,而不是i的值发生了变化。
综上,Python中变量不强制制定类型;变量赋值时确定类型;变量类型可变。
相对的,C#的var声明的类型,第一次赋值后类型就不可再变,Python更加灵活。
缺点:同一个变量出现不同的地方可能类型都不同,造成阅读困难。对于类型的校验全部推到运行时,需要写代码的人自我约束。IDE识别变量困难。
说实话,我并不觉得Python的这个动态数据类型是个好东西。
总则:Python基础 - 总则
上一篇:Python基础(1) - 初识Python
下一篇:Python基础(3) - 数据类型:1数字类型
相关文章推荐
- Python-基础数据类型
- Python基础--常用数据类型(常用内置对象)
- Python新手学习基础之数据类型——数字类型
- python入门基础----基本数据类型
- python基础学习第三课,基本数据类型
- 3-Python3从入门到实战—基础之数据类型(数字-Number)
- 第二篇:python基础之数据类型与变量
- Python基础——核心数据类型_集合
- Python基础:1.数据类型(空、布尔类型、整型、长整型、浮点型、字符串)
- Python基础(三) 数据类型
- 【零基础入门学习Python笔记005】闲聊之Python的数据类型
- Python基础之五大数据类型
- python语言基础之基本数据类型及其运算(1)
- python语言基础知识——基本数据类型详解
- 学习笔记:Python基础 —— 数据类型和变量
- Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化
- 03.Python基础之数据类型,操作符---python入门
- python基础一数据类型之字典
- Python基础知识详解(数据类型、函数、包)
- Python基础:内置核心数据类型