Python Day5

Posted 90500042陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Day5相关的知识,希望对你有一定的参考价值。

 

 

 

 

 一:区分Python文件的2种用途

  1个Python文件的2种用途

  1.1 当作脚本执行:        if __name__ == \'__main__\':

  1.2 当作模块导入使用     if __name__ == \'模块名\':

            if __name__ == \'__main__\':

               pass

     spam.py

    说明 在Python内有一种方法     

__name__   这种方法在文件当中默认等于__main__    (此处为2个_)  这样的作用就是。代码可以调试的时候运行的是整个spam.py
 1 money = 1000
 2 
 3 
 4 def index():
 5     print(\'in the index\', money)
 6 
 7 
 8 def bbs():
 9     print(\'in the bbs\', money)
10 
11 
12 def delphi():
13     print(\'in the delphi\', money)
14 
15 
16 if __name__ == \'__main__\':
17     bbs()
18     delphi()
19     index()
20     print(\'调试功能\')
21 
22 print(__name__)  # __main__
View Code

 

 

 

写完后本地调用直接运行;其他地方需要引用默认不会输出

 

二:模块的搜索路径

  1   内存

      

sys.modules  查看已经加载到内存的模块

 

  2   内置模块   sys   内置模块都是C语言写的

  3 自己定义的模块    sys.path-->查看当前环境变量

 

 

 

 

需要加入到环境变量才可以执行:

 

 

自己定义模块的时候 不能定义跟内置一样的模块

 

 

 

三: 包

    1.什么是包

        包就是1个包含__init__.py的文件夹,(可以往该文件夹下放一堆子模块)

 在python3中,即时包的文件夹下没有__init__.py文件 python3也不会报错,但是python2会报错

 

 之所以这样做是因为在import package1的时候,看似导入的是package1   实际上导入的是它下面的__init__.py文件

 

示例如下

在__init__.py中写入:

 

 然后在包的导入.py文件中执行导入操作后的执行结果

 

 ================示例1 begin===================

init文件

 

 

 

 

 解释如下:

当包的使用.py运行时,import package1 实际上是导入运行了package1文件夹下的init文件;

然后在执行

from package1 import m1
在package1下的m1被导入了init当中
因而最后包的导入中的package1.m1.func()就可以运行了

 

 ================示例1 end===================

 注意核心是:根据执行文件所在的路径去找,只有执行文件所在的路径才会加到环境变量当中

 

 

 

2   包的使用

      注意:但凡在导入时,出现.   (点)   这是导入包才用的语法

点的左边必须是一个包;使用的时候没有限制

 

以上的导入方式太麻烦了;那么针对此;有没有简便的方法?

 

=====================================示例2==================================================

 

 

 要实现该功能,只要在D:\\Document\\Python0404\\day5\\模块和包\\测试2\\package1\\__init__.py中写入

 

上面的导入方式是绝对导入

 

 之所以要这么做   是为了区分开开发者和使用者

 

 

=============================================示例3===========================================

原先结构不变;

 

 

 

 

 

 程式照样运行

 

注意点   相对导入是从当前init的路径下开始找      .   点  表示当前文件夹

一个点就表示往上一层

1 from ..m1 import func1
2 def func2():
3     func1()
4     print(\'in the func2 m2\')
View Code

 

以上是关于Python Day5的主要内容,如果未能解决你的问题,请参考以下文章

Day5 模块及Python常用模块

Python 之路 Day5

Python 之路 Day5 - 常用模块学习

Python 之路 Day5 - 常用模块学习

Python学习之路--Day5

Day5 - Python基础5 常用模块学习