Python函数与模块
Python中可以将函数存储在文件中,这个文件被称为模块。将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码,一个py文件就是一个模块
优点
- 可隐藏程序代码的细节,将重点放在程序的高层逻辑上
导入模块的方法
导入整个模块
- 先创建模块,模块是扩展名为.py的文件。模块中包含要导入到程序中的代码
- 我们先创建一个函数 这个函数的作用是将多个字符串拼接在一起 strappend.py
def strappend(*strs):
current_str = ''.join(strs)
print(current_str)
很简单,就是将多个字符串拼接起来
接下来我们再创建另一个文件 importmodule.py
在这个文件中导入刚创建的模块。
import moduledemo
moduledemo.strappend('1', '2', '3')
moduledemo.strappend('hello', 'i', 'miss', 'you')
输出结果:
123
helloimissyou
导入模块的方法
执行过程解释
在Python读取这个文件时,代码行读取到import pizza 让Python打开文件moduledemo.py,并将其中的所有函数都复制到这个程序中。
导入特定的函数
还可以导入模块中的特定函数,导入方法的语法如下:
from module_name import function_name
通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数
from moduledemo import strappend
strappend('1', '2', '3')
strappend('a', 'b', 'c')
这种语法,调用函数时无需使用句点。
使用as给函数指定别名
如果要导入的函数的名称可能和程序中现有的名称冲突,可指定简短而独一无二的别名,
下面将函数strappend指定别名 sp
语法格式为
from module_name import function_name as fn
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/9/29 下午4:57
# @Author : xinWang
# @File : importmodule.py
# @Software: PyCharm
from moduledemo import strappend as sp
sp('1', '2', '3')
sp('a', 'b', 'c')
使用as给模块指定别名
也可以使用as为模块指定别名,指定模块别名的通用语法如下:
import module_name as mn
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/9/29 下午4:57
# @Author : xinWang
# @File : importmodule.py
# @Software: PyCharm
import part2.defdemo.moduledemo as p
p.strappend('1', '3', '5')
p.strappend('a', 'b', 'c')
导入模块中的所有函数
使用*(星号)运算符可以让Python导入模块中的所有函数
from module_name import *
import语句中的星号让python将模块moduledemo中的每个函数都复制到这个程序文件中。由于导入了每个函数,可以通过名称来调用每个函数。无需使用句点表示法。
包
按模块来组织文件就是包
包本质上也是文件夹,但是包和文件夹的区别是 包中有init.py文件,而普通文件夹没有
导入模块和导入包
- 导入模块相当于执行了一次模块的文件
- 导入包相当于执行了init.py
所以导入包中的模块要使用from 包路径 import 模块名,而不能使用import导入一个包