知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技  > 软件

6:Python编程入门,这个习惯很简单,但很多人都做不好,严重影响开发效率!

发表时间:2022-03-24来源:网络

敲黑板

1)这是教学的 第6课

2)在专栏里,可以找到之前的课程

3)持续更新,关注不迷路

4)有问必答,不信试试看


回顾:虚拟地球模型初建

通过上一节课,我们知道了用 “拆大象” 的方法,把我们虚拟地球的问题变小、变清晰,然后通过Python的基础变量和类把“虚拟地球”的模型建立了起来。


上一节课的穿越链接:



开始上课

在为“虚拟地球”编写“虚拟人物”,并让他们建立组织、谈恋爱、繁殖后代、建立自己的领地等行为之前,我们稍微停顿一下,来了解一个和写代码本身一样重要的领域。项目文件的管理,了解这些知识,你会有如下好处。



我就是不想管理项目文件?

目前我们虚拟地球的项目文件只有1个,但在实际的开发工作中,项目文件可能上千种,上百人在维护。我们可以看看下面这两张图,你更喜欢在哪一种“环境”下工作?


喜欢左图的小伙伴,务必留言,我要和你做朋友!


我想大部分人都喜欢整洁舒适的办公环境吧,同样大部分人也喜欢整洁舒适的项目文件。这个领域不是具体的编程技术,但它们的一些规则和思想无论对于工作还是生活都会有很大的帮助,慢慢感受。


第一个规则,“尺寸”不要太大,也不要太小

我们先来看一下,上节课结束,我们代码的样子(word_5文件):


我们把10个类代码写在了一个文件里,貌似问题不大,但有经验的软件工程师已经在马不停蹄的拆文件了。



因为这个文件,随着软件开发的深入,内容会越来越多。目前只有88行,可能到了后期会有8000多行,到时候再来拆分文件就有点吃力了。


我们先以最常见的手法来拆分,把word_5.py 这个文件里面的代码按照类的定义来拆分,也就是一个类放在一个代码文件里,将其拆解成 10 个不同的文件。


放在 Model 这个目录里,如下图:



我们进入拆分出来的Animal.py 文件里看一看:


字体太小,建议在电脑上看

可以看到 4-12 行是从Word_5 里拆解出来的 Animal 类代码。


第一行代码:From model.Biology import Biology 是一个Python 的文件导入命令。

简单粗暴精准的理解,就是把Biology.py文件里的 Biology这类代码关联到,Animal.py 里面。(因为Animal(动物)这类继承自Biology(生物)这个类,不这样做Python不认识Biology是什么东西。)

不要小看这行代码,后面大家就会知道,它为程序员打开了一道充满无限力量的大门!

其他文件,比如:Env.py,还有Land.py 的情况和Animal.py一样。这里面有两个细节值得我们琢磨思考!


拆分的依据会是什么?


上面的例子,拆分依据是根据类的定义。

在不同的开发项目里面,程序员还会根据,代码的功能(注册功能、购物功能)、代码的用途(前端,后端)、代码的层级(底层接口、接口实现)等来对大文件进行拆分重构。但要注意,在拆分的时候,要控制好力度,拆分出来的文件不能 “太大”“也不能太小”。否则物极必反!


拆分文件的命名规则是什么?:


拆分文件的名字,最好和文件里的内容高度保持一致。在以类为拆分依据时,拆分出来的名称和类名保持一致,这不是强制规定,但有助于项目文件的阅读和整理。

你也可以文件名叫做 “PrettyGirl.py” 里面却是 “斐波那契数列模的代码”,相信我,工作中千万不要这样做!


第二个 把相同的东西放在一起,方便,好找

随着软件开发不断深入,会有新的代码文件产生,然后就会有新的代码拆解,代码文件会越变越多,如果你是一个强迫症患者,就难为你了。



有经验的程序员会把这些拆分出来的文件整整齐齐的归类,就像有些精致的孩子,会把房间打整的整整齐齐。房间整齐了,东西也好找了,项目代码整齐了,BUG也好调试了。根据上面的思路,按照代码的层级,我们把拆解出来的10个文件又收纳了一遍。看下图:



这样稍微整理一下,是不是就舒服、清晰了一些?大家能看出来整理的思路嘛?(如果不是的话,请留言给我,我有话要和你说)


在你享受整理文件带来的治愈感时,请注意,这里有个小陷阱!


若我们要在Pycharm里面整理项文件,在Project这个窗口下面,拖拖拽拽,新建目录、删除目录就可以了。是不是美滋滋?

在这个过程中会遇到下面的提示:


意思是,文件位置改变了,要不要更新代码里import 或 from 的引用位置? 这里只要点 Refactor(重构)按钮即可。


这些操作是不是也可以在 windows 的文件管理里面操作?


答案是可以的,但不建议这样操作,因为在 windows 文件管理拖拖拽拽代码文件,代码文件里的import 或 from 的引用位置,是不会自动更新的,这样会导致我们程序出错,甚至会出现一些隐藏很深的 BUG


第三个 这两个句式,让 Python 工程师很自信

Import...... From xxxx.xxxx import xxxxxxxx.......


在古时候如果有Python的话,上面这两行代码一定是一个充满魔力的咒语。上面这两种句式,都是使用 Python 开发出各种各样有趣又有用程序的基石。毫不夸张的说掌握了这两种句式,你就拥有四两拨千斤,两三行代码敲出一个应用程序的能力!


Import 与 From ..... 这两种从文件外部导入资源(文件、包、插件等统称资源)的命令目的一样,但细节会不同,总结如下:


Import:

1) 大刀阔斧的导入整个模块(模块就是 .py 的代码文件 )

2) 会自动检索导入的模块存不存在。import会去 sys.path 这个列表里寻找文件的线索 ,如何查看这个列表变量里有没有你需要的模块路径? 看下面的代码。



3) 可以多次导入同一个模块,但Python实际只会导入一次。

4) 相互导入会引发程序错误,比如我导入你,你又导入我,那到底是谁导入谁?



5) 需要注意的是,如果自己写的 .py 模块无法用import导入,这可能是因为项目文件结构的问题。


遇到这样的情况,需要把导入的模块用 sys.path.append(“模块地址”),加入到sys.path 列表里。这样 import 就可以找到它了。



From....

1) 像手术刀一样细致,可以导入整个模块,也可以导入模块里的一个变量,如下面的代码:


2) 它不会像 import 一样自动寻找模块的位置,它需要你给它指明一个明确位置

3) 从语义上来说,它要比 import 更有可读性。


好了,如何站在巨人肩膀上?

为什么说掌握了 import ,和 from .... 这两种导入模块(py文件)的命令就打开了一道通往无限可能的大门呢?

因为你学会了站在巨人的肩膀上!



现在软件开发的模式和过去10年有一些不一样了,过去10年程序员专注的是如何实现一个具体的算法从而来解决问题。


现在程序员解决问题的时,有大把现成的模块、插件、包、框架等等可以选择!

我觉得这件事情用嘴说不够震撼,现在我们就来看几个例子吧!


例子1:让你的Python拥有画画的能力!


导入 turtle 库,你就是一个会用代码画画的浪漫艺术家!敲入下面代码,然后运行,看看你会画个什么出来?



例子2:5行代码让你的Python说人话!


在让python 说话之前,我们先来给Python安装能说话的第三方库。在Pycharm里打开Terminal(其实就是CMD),如下图:


字太小,建议收藏用电脑看

然后敲入PIP命令,让Python安装 “说话” 插件。


字太小,建议收藏用电脑看

这行命令的意思是,让Python 通过 pip 命令安装 pyttsx3 和 pywin32 这两个库。


关于pip的使用方法,后续课程会专门为大家详细说明。

待安装好后,敲入下面的代码,然后运行!(运行前把电脑声音开大点!)


字太小,建议收藏用电脑看


例子3:让Python 变成无情的炒股机器!的第一步!

和例子2一样,首先需要给自己的Python安装一个包,命令如下:



然后敲入下面代码,运行一下试试看:


上面3个例子的代码加起来还没超过100行,但Python已经让你拥有了,用代码绘画、说话、查询行情的能力了。


如果你已经掌握了上面的知识,那么项目文件的管理算是入门了。也更敢想象了!甚至你会发现,你的房间,你的电脑桌面,你的工位,你工位上的咖啡杯都变得井井有条了,整个人的颜值,都提高了(变自信了)!


软件开发的项目文件的管理就这么简单?

当然不是!


上面的内容只是软件开发项目文件管理的冰山一角,在上规模的软件开发团队,团队内部会集中或分布式的管理项目代码。除了上面最基础的知识外,还有SVN、GIT这两大版本控制工具的使用,以及持续集成、持续发布等。


这个领域在一些大的软件开发团队里,专门会有小组来处理这些事务,为这些事物开发相关的工具。


这方面的知识,我会出系列文章。所以说,点赞、评论、关注不迷路。


下一课

把自己“克隆”到虚拟世界里。



收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜