Python模块与包笔记(自用)

1-多个文件!模块

Python最得意的地方就是代码精简,简单,几行代码完成很多事情,但是在做工程的时候,一个文件是不够用了,几千行代码万一出现一个bug,那得找多久?于是模块横空出世,其实我们经常用到模块,使用import引入的就是模块,像os.path。说白了模块就是文件,注意是单个文件叫模块。下面说怎么使用。

首先创建模块:module.py

# module.py
def display(arc):
	print(arc)

再创建主程序,在创建主程序的时候,需要使用import语句导入你的模块,注意主程序要和自建模块放在一起,否则放在PythonLib里。

# main.py
import module
module.display("hello")

运行结果:

hello

如果你将模块中的语句封装起来,才能通过调用的方式执行,否则直接执行。

模块的说明文档

这一部分并不重要。没一个模块都应该有一个说明文档,这样可以让人更清楚的看懂。说明文档写在模块代码的开头,用长字符串括起来,写下一些基本的文档,不过话说回来我从不写,除非必须。

Python模块与包笔记(自用)_第1张图片

为自定义模块添加说明文档,和函数或类的添加方法相同,即只需在模块开头的位置定义一个字符串即可。例如,为 demo.py 模板文件添加一个说明文档:

'''
demo 模块中包含以下内容:
name 字符串变量:初始值为“Python教程”
add    字符串变量:初始值为“http://c.biancheng.net/python”
say() 函数
CLanguage类:包含 name 和 add 属性和 say() 方法。
'''

经典说明文档实例如下:

'''
 @Author: your name
 @Date: 2020-07-06 11:48:19
 @LastEditTime: 2020-07-09 19:27:25
 @LastEditors: Please set LastEditors
 @Description: In User Settings Edit
 @FilePath: \Coding-Notes\.cpp
'''

然后使用在主程序中使用模块的魔法方法可以直接输出文档,实例两个代码在一起

# main.py
import module
print(module.__doc__)

# module.py
'''
 @Author: your name
 @Date: 2020-07-06 11:48:19
 @LastEditTime: 2020-07-09 19:27:25
 @LastEditors: Please set LastEditors
 @Description: In User Settings Edit
 @FilePath: \Coding-Notes\.cpp
'''

结果输出:

 @Author: your name
 @Date: 2020-07-06 11:48:19
 @LastEditTime: 2020-07-09 19:27:25
 @LastEditors: Please set LastEditors
 @Description: In User Settings Edit
 @FilePath: \Coding-Notes\.cpp

可以打印文档

2-模块升级!包

代码中是有作用域的,模块中的变量可能和主程序中的变量重复,而且模块中也不可能一个模块写下所有程序,这时包光荣出场,其实就是一个文件夹,包括一个__init__.py的文件夹,可以包含很多模块或者包中包。

例如,现在我们创建一个非常简单的包,该包的名称为 my_package,可以仿照以上 2 步进行:

  1. 创建一个文件夹,其名称设置为 my_package;
  2. 在该文件夹中添加一个 __init__.py 文件,此文件中可以不编写任何代码。不过,这里向该文件编写如下代码:
    '''
    http://c.biancheng.net/
    创建第一个 Python 包
    '''
    print('http://c.biancheng.net/python/')
    
    __init__.py中的代码如果不封装在函数中,则会引入后直接执行。

创建好包之后,我们就可以向包中添加模块(也可以添加包)。这里给 my_package 包添加模块

第一个模块命名为module1.py

'''
name: module1.py
'''

def display(arc):
    print(arc)

就这么点,一个函数,引入包的时候格式如下

from 包名 import 模块名 [as 别名]
from 包名.模块名 import 函数名 [as 别名]
import 包名[as 别名]
import 包名.模块名
方式很多,也可能包中还有包
import 包名.包名.包名

下面是主程序,如果包没有保存进Python Lib里面,就要把包和主程序放在一起,最好是一个工程文件夹。

——工程文件夹
 ——包
 ——主程序
 ——一些模块

from myPackage import module1

module1.display("fff")
print(module1.__doc__)

这个运行结果就是输出hello world然后输出fff结束

包中的init是自动执行的,所以直接输出helloworld。

你可能感兴趣的:(⭐Python学习,python,模块,包)