韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python高级 > Python是动态强类型的吗

Python是动态强类型的吗

头像

Python

2019-06-15 10:13:313665浏览 · 0收藏 · 0评论

Python是动态强类型的,我们可以根据Python的变量定义和使用来进行判断。

Python变量声明和定义

与C#不同,Python在使用变量之前无须定义它的类型,试着运行下面的例子:

i = 12 print i

从上边我们可以看到,变量 i 在使用前并不需要定义,但是必须声明以及初始化该变量。试着运行下面的例子:

i = 1
print i + j

上面的代码会产生一个异常:“NameError: name 'j' is not defined”,Python提示变量 j 没有定义。这点和BASIC等弱类型的语言不一样。在BASIC中,执行上述代码的时候不会产生异常,你可以在EXCEL的VBA开发环境里试一下,把 print改为MsgBox就可以,结果会输出 1 。这说明Python并不是一种类似BASIC的弱类型语言。

另一方面,Python与C#有一个很大的差异就是在程序运行过程中,同一变量名可以(在不同阶段)代表不同类型的数据,看看下边的例子:

i = 1
print i,type(i),id(i)
i = 10000000000
print i,type(i),id(i)
i = 1.1
print i,type(i),id(i)

变量 i 的类型在程序执行过程中分别经历了int、long和float的变化,这和静态类型语言(如C等)有很大不同。静态语言只要一个变量获得了一个数据类 型,它就会一直是这个类型,变量名代表的是用来存放数据的内存位置。而Python中使用的变量名只是各种数据及对象的引用,用id()获取的才是存放数 据的内存位置,我们输入的1、10000000000和1.1三个数据均会保存在id()所指示的这些内存位置中,直到垃圾回收车把它拉走(在系统确定你 不再使用它的时候)。这是动态语言的典型特征,它确定一个变量的类型是在给它赋值的时候。

另一方面,Python又是强类型的,试着运行下边的例子:

# -*- coding: utf-8 -*-
i = 10; j = 'ss'
print i+j
#正确的写法是print str(i)+j,输出10ss

会产生一个异常:“TypeError: unsupported operand type(s) for +: 'int' and 'str'”。在BASIC等弱类型的语言中,上边的例子会正常运行并返回(虽然有时候是不可预期的)结果。

所以,我们说Python既是一种动态类型语言,同时也是一种强类型的语言,这点是和C#不同的地方。对于Python的这种变量的声明、定义和使 用方式,C#程序员可能要花一段时间去适应,不过相信你会很快就喜欢上它,因为它让事情变得更加简单(而且不会不安全)。而且,C# 4.0 已经开始用类似的方式定义和使用变量(通过在变量名前加关键字dynamic),如果你先学了Python变量,将能够更快的适应C# 4.0的动态编程特征。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

一阴吞两阳与MACD的关系.| CSGO暴躁少女高清大片| 《美国伦理4女警》| 97人妻人人躁人人玩人人澡AV| 李丽珍电影| 少女日记| 国产精品黑料吃瓜网曝事件海角 | 苍老师电影全集免费播放在线观看| 恋臀者| 美国色情巜教练和女警官视频| 狂恋你| 欧洲最强女RAPPER免费| 两个老头把我添高潮了| 男生把女生QQ放在一起的原因 | 一边摸上面一边敷面膜| 私处按摩SPA养生精油| 三十如狼的陪读妈妈免费阅读小说| 《黏糊糊的你》动漫免费观看| 饥渴老翁一晚要了我三次| 我被5个男人躁一夜不收我怎么办 两男吮她的花蒂和奶水视频 | 初中生兄弟互相导管立的经历 | 鸭王在线观看| 男朋友摸完小花园小肚子有点痛 | 耕耘小侄女小说全文免费阅读| 《金莲浮史》台湾绝版| 《交换做爰》在线观看| 《甜蜜惩罚2》第二季的剧情简介 《一滴都不许漏》何泽城林荫 | 小丹让我尝尝你的味道是什么歌啊 | 人犬兽人在线观看免费完整| 《湿点》未增减板相似| 王娟被老赵一夜干4次| 父女大作战1-32集免费| 伦理《少妇的滋味》完整版| 爸爸吃女儿奶奶高情商回复| 王娟被老赵一夜干4次| 做完放里面睡觉醒了继续| 京东影业JD008苏小小| 《女朋友的妹妹3》| 来真正的狗配人真人| 《办公室高潮秘书2》电影| 女性三角毛毛区有片毛掉光正常吗