模块的基础概念

#!/usr/bin/env  python
# -*- coding: utf-8 -*-
# ***********************************模块的定义和导入***********************************
# 模块:在Python中,一个.py文件就称之为一个模块(Module);把相关的代码分配到一个模块里能可以让代码更容易理解。
# 模块分为三类:1.python标准库;2.第三方模块;3.应用程序自定义模块
# 模块注意事项:1.提高代码的可维护性;2.编写完一个模块可以从其他地方调用;3.模块命名应避免和关键字重复

# 1.模块引用方法(模块的导入)
# import time,sys,os        #import导入模块
# import test
# print(test.my_add(2,8))

# from test import my_add     #从模块中导入某一个具体的函数或者方法
# print(my_add(2,8))

# from test import *          #导入模块中的所有函数或方法(一般不建议全部导入,有可能导致重名)

# 2.模块的补充
# (1)当导入一个模块时python解释器会按照一定的路径进行查找,使用sys.path可以查看查找的路径
# (2)如果要永久添加一个路径到模块的查找路径中,直接在操作系统的环境变量中添加;使用列表的append方法往sys.path中是临时添加路径
# import sys
# print(sys.path)

# 3.在不同包里导入模块
# 包:就是一个包含了__init__.py文件的文件夹,它定义了由n个模块或n个子包组成的python应用程序执行环境;可以用包来组织模块,避免冲突;
# 即就是包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包
# 注意事项:(1)导入一个包时会先执行__init__.py文件,然后才会导入包
# from my_test import my_test1
# print(my_test1.my_pingfang(9))

# from my_test.my_test1 import my_pingfang      #多级目录之间以.连接来导入
# print(my_pingfang(9))

# (2)"__name__" == "__main__"
# 一般我们将主程序放在    if "__name__" == "__main__":之下,当直接执行某个.py文件的时候,该文件中那么 __name__ == '__main__' 是True
# print("该py已经执行")
# if __name__ == "__main__":
#     print("ok")
#     print(__name__)
# 当某个py文件被调用时,在被调用的py文件中__name__的值就是我们这个py文件的名字,即判断false,此时可以将调试代码放在if之下,不会执行
# from my_test import my_test1

# (3)"__file__":如果从二级目录调用一级目录的模块时,需要将一级目录加入sys.path才可以正常调用
# 注意:绝对路径用 /
# import os,sys
# print(__file__)     #__file__可以打印当前py文件的路径,pycharm执行结果为  E:/python_code/基础知识/常用的模块/模块与包的基础概念.py
                    #在cmd执行结果为  模块与包的基础概念.py
# print(os.path.dirname(__file__))    #打印当前文件上一层目录的绝对路径

# print(os.path.abspath(__file__))    #打印当前文件的绝对路径

# print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))      #打印一级目录的绝对路径

# 从二级目录调用一级目录的模块
# import os,sys
# abs_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# sys.path.append(abs_dir)
模块的基础概念
posted @ 2019-12-19 04:46  青隅  阅读(201)  评论(0编辑  收藏  举报