使用Python的时候感到心里没底,怎么办?

接触了Python,对里面的数据结构倒是比较清楚。但是在自己尝试编写代码的时候老是跳不出C/C++的思路,感觉变量没有申明或者没有初始化就感到很没底,…
关注者
12
被浏览
1,378
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

你了解C++,所以一定熟悉OOP。我觉得你只要牢记“Python一切皆对象”的特性,就容易转变思路。

以变量声明为例。

C里面为什么要声明变量呢?因为编译器需要根据声明分配内存空间。所以在C语言里面,是“先有变量再有内容”,变量对应了内存空间。

Python变量为什么不需要声明呢?因为Python是“先有内容(对象)再有变量”,变量本身只是个名字,没有实质内涵。

在Python里面,一切都是围绕对象来进行的。变量名只是对象的一个标签而已,所以可以随便贴。打个比方,人可以取名叫“阿宝”,小猫小狗也可以取名叫“阿宝”,花花草草你也可以用这个名字。所以“阿宝”这个名字可以用在任何地方,无需特别用在一种数据类型上。

与C不同的是,在Python中当你写下x=789时,首先会生成一个值为789的整型对象,然后再贴上一个标签名字x。此后假如你又写下x=7.89,那就又生成了7.89这个浮点型对象,再把x标签撕下来贴在它身上。

对应前面的比喻,789是某个人,7.89是花花草草。

先生娃,再取名。先种花,再贴签。

在Python里面,等号(=)最好是理解为“取名”或“贴签”,不要理解为传统的“赋值”——尽管Python官方文档里还是使用“赋值”这个术语。

这样想,是不是就比较好理解了?

同样的道理,既然是先有对象,再有名字(即变量),也就不存在变量需要初始化的问题啦。

Python为什么要这么做?我个人觉得这样更符合生活常识,也就是更加对象化。

所以Python是站在普通人的思维模式而不是程序员的思维模式来设计的。这是它能广泛应用的主要原因之一。

顺便说一句,为了照顾老程序员的习惯,Python也可以声明变量类型,只是执行时会被忽略掉。