一、模块定义
Module
,是一个Python
文件,以.py
结尾,模块能定义函数、类、变量、可执行代码。python
中有很多模块,从而帮助用户快速实现一些功能。
二、模块的导入与使用
[from 模块名] import [模块 | 类 | 变量 | 函数 | \*] [as 别名]
常用:
import 模块名
from 模块名 import 类、变量、方法等
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
下面以time
模块进行演示:
导入方式一:
导入:import 模块名
使用:模块名.功能名()
# 导入time模块
import time
# 实际上是调用time.py,在Pycharm中按住Ctrl键并点击time字样,可打开time.py文件
# 调用时候以模块名.功能()的方式实现功能,可以调用模块内的所有功能
print("现在开始执行程序")
## 现在开始执行程序
time.sleep(5)
print("这是5秒后的执行结果")
# 大家可以体验一下这五秒的延迟
## 这是5秒后的执行结果
导入方式二:
导入:from 模块名 import 功能名
使用:功能名()
这样可以导入特定模块的特定功能,但无法使用模块内的其它功能
from time import sleep
# 调用时仅通过功能名()执行即可
print("现在开始执行程序")
## 现在开始执行程序
sleep(5)
print("这是5秒后的执行结果")
# 大家可以体验一下这五秒的延迟
## 这是5秒后的执行结果
导入方式三:
导入的同时可以命名别名,这样能够快捷的调用一些较长的模块或功能:
模块定义别名:
import 模块名 as 别名
# 例如:
import time as te
print('程序开始')
## 程序开始
te.sleep(5)
print('程序结束')
## 程序结束
功能定义别名
# 例如
from time import sleep as sp
print('程序开始')
## 程序开始
sp(5)
print('程序结束')
## 程序结束
三、自定义模块
当python
中已有的模块无法满足你的需求时候,就可以自定义模块来实现特定的功能。
我们回顾一下前面文件读写的功能,写一个my_module的文件:
with open("my_module.py",mode = 'w',encoding='UTF-8') as my_file:
my_file.write('def myfunction():\n print("我是一个自定义模块")')
## 40
写入的文件是这样的:
# 调用方式一
import my_module
my_module.myfunction()
## 我是一个自定义模块
# 调用方式二
from my_module import myfunction
myfunction()
## 我是一个自定义模块
模块的函数如果重名,则后导入的模块会生效:
# 生成第二个重名模块函数
with open("my_module2.py",mode = 'w',encoding='UTF-8') as my_file:
my_file.write('def myfunction():\n print("我是后定义的模块函数")')
## 41
# 导入两个模块
from my_module import myfunction
from my_module2 import myfunction
myfunction()
# 显示的显然是my_module2中的函数
## 我是后定义的模块函数
__all__
变量:保证函数可以通过import *
导入:
# 生成第二个重名模块函数
with open("my_module3.py",mode = 'w',encoding='UTF-8') as my_file:
my_file.write('__all__=["myfunction"]\ndef myfunction():\n print("我是__all__中的模块函数")\ndef myfunction2():\n print("我不是__all__中定义的模块函数")')
## 120
定义后的模块内容为:
# 试一下__all__变量包含与否的函数会调用区别:
from my_module3 import *
myfunction()
myfunction2()# 显然无法正常调用这个函数
我是all中的模块函数
NameError: name ‘myfunction2’ is not defined
往期回顾
如何联系我们
公众号后台消息更新不及时,超过48h便不允许回复读者消息,这里给大家留一下领取资料、免费服务器(有root权限的共享服务器,注册即送200¥)的微信号[Biomamba],方便各位随时交流、提建议(科研任务繁重,回复不及时请见谅)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:永久免费的千人生信、科研交流群
大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
如何搜索公众号过往发布内容
网友评论