8

作者: 可爱叽叽 | 来源:发表于2018-12-05 17:07 被阅读0次

——第三方库——

第三方库一般存放在site-packages中,在写程序过程中可以直接调用。

同时,自己也可以写第三方库。比如,写一个login的登录程序,然后在另一个.py文件中执行它。调用时这两个文件在同一个目录下。

自己写的login模块为:

在other_module文件中调用login模块:

我们可以执行看一下,用户名和密码正确的情况下:

用户名密码错误的情况下:

一般在调用库的时候,其寻找路径为:先从当下的目录中寻找,若是没有,则到全局环境变量中寻找。

若是把login.py移到别的目录下,执行程序就会报错。比如我们把login程序移到new_dir目录下:

我把login.py程序移到new_dir下,在调用login时,先到当下目录中寻找,没有,在到全局环境变量中寻找,也没有,就会报错,显示“No module named 'login ' "。

这种情况解决办法有两种:

①把login.py这个文件放在存放第三方库的site-packages的目录下。

我们再来执行一下这个程序,看有什么结果:

成功解决。

②另一种方法是修改全局环境变量,把login.py文件的存放路径添加到全局环境变量中。

——.pyc是什么文件——

我们可以看到,在执行login.py 文件时,会在_pycache_文件夹下生成一个login.cpython-34.pyc文件。

下面我们了解一下.pyc是什么文件。

首先,计算机是不能够识别高级语言的,所以当我们运行一个高级语言程序的时候,就需要一个“翻译机”来把高级语言转变成计算机能读懂的机器语言。这个过程分成两类,第一种是编译,第二种是解释。

编译型语言在程序执行之前,会先通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了,从而效率会比较高。最典型的例子就是C语言。

解释型语言就没有这个编译的过程,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后直接运行,最典型的例子是Ruby。

此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

其实Python和Java/C#一样,也是一门基于虚拟机的语言,也是一种先编译后解释的语言。

当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。

下面来说一个Python文件执行的具体过程:

当python程序运行时,编译的结果是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

其实PyCodeObject才是Python编译器真正编译成的结果。

.pyc文件存的是预编译的字节码。

那如果在第二次执行某程序时,作了修改,那怎么办?

Python会在执行程序之前,会先查找有没有pyc文件存在,若是有,则下一步比较.py文件和.pyc文件的更新时间。如果.pyc文件的时间在.py文件之后,则直接载入到.pyc文件中,这样就省掉了编译的时间,可以提高效率;如果.py文件的更新时间在.pyc文件之后,说明对源代码进行了修改,则会重新进行编译。

相关文章

  • 8-8-8

    发-发-发 今天比较闲,备忘录看了一遍又一遍,发现没有什么具体的工作非得马上完成。 又不想看微博浪费时间,想来想去...

  • 8、8

    山重水复疑无路,柳暗花明又一村。人生有万千种可能,但是真的有一种成功,叫坚持到底!

  • 8/8

    今天有人问我,你的脾气一直都是这么好的吗?还是说你也看人的? 我笑笑说,你觉得呢? 虽然表面上,我波澜不惊,可我的...

  • 35年静脉曲张老烂腿案例

    【35年静脉曲张老烂腿案例】 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8

  • 寒假计划安排表

    8:00 起床 8:00~8:10 洗漱 8:10~8:40 吃早饭 8:50~9:...

  • 作息时间表(家)

    上午 8:00起床 8:00~8:20洗漱,吃早饭 8:20~8:30看视频 8:30~8:50背单词 8:50~...

  • 2021-01-07

    脑洞大开智力PK 蓝白领(辑) 之一 5 1 5 5=24 8 8 8 8 8 8 8 8 =1000 在数字与数...

  • 24=8+8+8

    当表盘里的时针转了一圈以后,崭新的一天已经开始。实际上,每个人得生活方式是大相径庭的,8小时睡觉,8小时工作,每天...

  • 假期计划

    醒来 : 8:00 记单词: 8:00~8:30(半小时) 起床 : 8:30 洗漱 : 8:30~8:50 (二...

  • 2019-5-8晨间日记

    8:15-8:25 收拾厨房 8:25-8:30 铺床 8:30-8:35 收拾杂物 8:35-8:40 卫生间台...

网友评论

      本文标题:8

      本文链接:https://www.haomeiwen.com/subject/ovqwcqtx.html