python复习第7天:模块和包
2020-03-20 本文已影响0人
潮办公
title: python复习100天--第7天
date: 2020-03-13 14:00:24
tags:
- python
- 基础
categories: python复习
top: 8
模块和包
模块
- 模块是一个包含所有的你定义的或者别人定义的函数和变量的文件,后缀为
.py
- 模块一般使用import导入模块名,即导入文件名,然后使用模块名加函数或者变量调用
# 第一步,自己动手写一个模块
def fun1():
"""
随便写一个函数,用来打印"hello world"
:return: None
"""
print('hello world')
# 写完后重命名为test.py文件
# 调用模块
import test
test.fun1() # 调用模块的函数
"""
# 输出结果
hello world
"""
- 模块也可以使用from ..模块.. import ..函数或者类..调用,这样可以直接使用函数或者类或者变量
from test import fun1
fun1()
"""
# 输出结果
hello world
"""
- 如果不确定模块内有什么函数或者类,可以用
*
号代替,这样就会导入模块中所有函数和类或者变量了
from test import *
fun1()
"""
# 输出结果
hello world
"""
- 导入函数或者类后,可以用as对其重命名,这样可以少写一些字。
from test import fun1 as f1
import test as t
f1()
t.fun1()
"""
# 输出结果
hello world
hello world
"""
name属性
- 为了让特定的代码在模块中私有化,即模块B导入模块A的时候,模块A有部分代码模块B运行不了,只有模块A可以运行
- name属性可以用来做模块测试
- 使用方法:
if __name__ = '__main__':
# 第一步,自己动手写一个模块
def fun1():
"""
随便写一个函数,用来打印"hello world"
:return: None
"""
print('hello world')
if __name__ == '__main__':
def fun2():
print('这个函数只能test模块使用')
fun1()
fun2()
# 写完后重命名为test.py文件
"""
# 运行test模块后的结果
hello world
这个函数只能test模块使用
"""
from test import *
fun1()
fun2()
"""
hello world
Traceback (most recent call last):
File "/home/tlntin/PycharmProjects/study/002.py", line 4, in <module>
fun2()
NameError: name 'fun2' is not defined
"""
# 在其它模块导入test模块后,运行fun2函数失败,提示该函数未定义
# main函数下的代码只能在该模块运行,不能被导入运行
-
dir
函数可以显示出模块中所有函数
import test
print(dir(test))
"""
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'fun1']
"""
标准模块
- Python自带的模块,不需要使用第三方
pip
或者conda
安装即可使用 - 常见的比如
sys
、os
、math
包
- 可以理解为模块的集合
- 把模块理解为
py
文件,那么包就是文件夹 - 导入包的方法和导入模块的方法一样
- 常用方法: from ..
包.模块
.. import ..类或者函数..
from os.path import exists
print(exists('test.py')) # 验证文件路径是否存在
"""
# 输出结果
True
"""