尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

原来我们都误会了 Python 变量!看完这篇你会彻底想明白

原来我们都误会了 Python 变量!看完这篇你会彻底想明白 学了这么长的时间, 你大概早就变得习惯于去写那变量, 去改变量了, 但是在心里其实一直没有清楚弄明白: 那所称作“变量”的东西,它在最底下一层究竟是在做着什么样的事情?这一整组内容, 我打算带你进行一回小小的“深潜”, 不谈那些花哨的技巧, 仅仅针对这件看上去最为简单、然而却最容易被忽视的基础, 一直讲到你真的心安了才行呢。变量这件事需讲清楚, 实际上得涉及几个关键问题, 它是怎样被“关联”起来的, 其背后属于什么类型, 有多少名字指向它, 它自身究竟是什么是谁, 叫啥名, 以及能够存在多久。接下来围绕这六个方向, 逐一拆解并展开, 以使你对变量形成一套成体系的认知, 而非仅有一堆零散记忆。先说日常写代码最常做的动作, 给一个名字配上一个值, 多数人写完就翻页, 从没想过这一步究竟发生了什么, 实际上那一瞬间, 你已在让程序里一个名字与某个具体数据建立联系, 把这个动作想明白, 是后续所有理解的起点。随后你会发觉, 被你“指向”的诸般事物, 其自身皆具备各自的特性: 有的是用以进行整数运算的, 有的具有小数的性质, 有的呈现为一段文本样式, 有的好似一个能够容纳诸多元素的小篮子。类型决定了它们能够开展的操作、进行的玩法, 变量仅仅是将你引领至其跟前的那张入场券。很多人在最开始的时候, 都会产生这样那样的想法, 把变量想象成一个小小的盒子, 仿佛东西只要被放置进去了之后, 就再也不会发生任何改变了。但是在这里, 我将会陪伴着你, 全过程地完成一次思维方面的切换: 与其单纯地把它看作是一个容器, 倒不如换位思维, 把它看成是紧紧贴在数据上面的某种标签。一旦形成了这样的一个视角, 许许多多之前完全解释不通的各种现象, 就都会立刻变得特别顺理成章了。再来说说“一个数据能够拥有多少个名字”这件事。试想一下, 同一间屋子会存在好几把钥匙, 每一把皆能够打开门, 然后进入屋内去挪动物品。程序当中的情况亦是如此, 多个名字能够同时指向同一份数据, 你于其中任意一个入口处做手脚, 所看到的实际上都是同一块内容在产生变化。在这个特定时刻, 就会突然产生一个极为经典的令人困惑的问题, 那就是: 为何在某些情形之下, 这边做出改动之后, 那边也相应地随之发生变化然而在有的时候, 即便屡经更改, 却仅仅是只对自身产生影响? 而其中的关键要点就在于, 存有的一些数据能够在原位置直接进行修改, 另外一些一旦看上去好像“发生了改变”, 实际上已经替换成了全新的一份。弄明白这一点之后, 你在排查问题时将会快出许多。提到此处, 我们再将视角拉近些, 谈谈“身份”这事。有时两个变量看上去毫无差异, 恰似两人容貌极为相像, 可你若真问一句: “他俩是否为同一人? ”要看的是身份证以及护照号。程序里亦是如此: 辨明“像不像”与“是不是同一”, 会使你判断更精确。内在梳理清晰后, 便来到最易被忽视、却能径直展现专业程度的一件事: 确定名称。我的惯常做法是, 针对供他人查看的代码, 名称务必要能让人瞬间明晰其用途。一个变量名能否阐明情况, 判定了你的代码是“需经翻译”还是“无需解释”。这是构建个人风格与专业形象的绝佳切入点。存在这样一个极为关键重要的问题: 那些名字究意在何时展现出现象, 而又究竟会于何时悄然隐匿不见踪迹? 存在一部分名字, 自程序开启启动的那一瞬间便已然处于所在之处, 存在另一部分名字, 仅仅于某一个函数运行执行的那段特定时间短暂地进行一次亮相展示。领会理解这种“生命历程轨迹”, 能够协助帮衬你躲避避开各类莫名其妙毫无头绪的错误失误, 并且也能够促使让你构思设计出更为简洁干净的代码结构架构。当赋值、类型、引用、身份、命名以及生命周期全都串联在一起, 你就能够瞧见变量的完整面貌, 它向来都不是某一个单独孤立的概念, 而是源自一套完整机制共同协同工作所产生的结果。往后如若再碰到跟变量相关的问题, 你便能够从这六个维度着手予以拆解, 而并非仅仅凭借经验盲目冲动地行事, 而是有依据地去分析处理, 有方法地去应对解决, 不再是毫无章法地靠拍脑袋决定。至再往三想要着重表明一点, 真正致使差异显现而非趋同之处, 自始至终都并非多么 的语法诀窍, 却是对于这些根基概念的领悟深度。将变量这一项钻研透彻拿捏精准, 你所撰写的每一节内容也就会更加具备可调控属性、更加彰显优雅特质。后续我仍会持续从这样一种根基层面的观察角度, 与你一道把更多看去较为简略的概念以庖丁解牛般的方式阐释得清晰透彻。
返回列表