模块的基础概念
#!/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)
为了将来做自己想做的事情努力.......