Python变量和基本数据类型
一 模块
每一个 Python 脚本文件都可以被当成是一个模块。模块以磁盘文件的形式存在。当一个模块变得过大,并且驱动了太多功能的话,就应该考虑拆一些代码出来另外建一个模块。模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导 入(import)调用。模块可以包含直接运行的代码块、类定义、 函数定义或这几者的组合。
推荐所有的模块在Python模块的开头部分导入。而且最好按照这样的顺序:
- Python标准库模块
- Python第三方模块
-
应用程序自定义模块:
import
在Python中用关键字import来引入某个模块,比如要导入模块time,就可以在文件最开始的地方用import time来引入
#语法 import module1 import module2[ ...... import moduleN] # 也可以在一行内倒入多个模块 import module1[, module2[,... moduleN]] ''' import 模块名[,模块名]。。。 导入整个模块 通过 模块名.方法名 调用 ''' import time print('start') # sleep(5) 错误调用 time.sleep(5) #正确调用 print('stop')、 '''
from…import
Python的from语句让你从模块中导入一个指定的部分到当前命名空间中
#语法 from modname import name1[, name2[, ... nameN]] from 模块名 import 函数名 从指定的模块中导入指定的部分 ''' from time import sleep print('start') sleep(5) print('stop')
from…import *
导入一个模块的所有内容
#语法 from modname import* #导入模块中的所有内容 from math import * print(ceil(1.1)) #向上取整 print(floor(1.1)) #向下取整
扩展import语句(as)
有时候你导入的模块名称已经在你的程序中使用了, 或者你不想使用现有的名称。可以使用一个新的名称替换原始的名称。(给导入的模块去别名)
#实列: import pandas #原始的名称 import pandas as pd #使用as重新命名 #给导入的模块取别名 import math as m print(m.ceil(1.1)) #向上取整 print(m.floor(1.1)) #向下取整 from math import ceil as c #不建议,函数名组好简化或者区别名 print(c(1.1)) #向上取整
模块制作
模块调用
既然可调用系统模块,那么可不可以自己创建一个模块,然后通过另一个程序调用? 当然可以,对于一个软件项目来说不可能把所有代码都放在一个文件中实现,它们一般会按照一定规则在不同的目录和文件中实现。
1.同级目录
import test #引入同级目录中的test模块 print(test.test_add(2,3)) from test import test_add print(test_add(2,3))
2.跨模块引入(模块为兄弟目录)
import study.test2 #模块名.函数名 print(study.test2.test2_add(2,3)) from study import test2 print(test2.test2_add(2,3)) from study.test2 import test2_add print(test2_add(2,3))
3.跨模块引入(模块为父亲兄弟目录)
使用sys.path.append('..\')或者sys.path.append('../') #返回上一级目录 (相对路径和绝对路径)
4.覆盖标准模块
from msg import math #自定义的模块 print(math.ceil(1.1)) #向上取整 print(math.floor(1.1)) math.getInfo()
三 dir()函数
dir()函数一个排好序的字符串列表,内容是一个模块里定义过的名字。返回的列表容纳了在一个模块里定义的所有模块,变量和函数。
四 包
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块B
目录中只有包含一个叫做init.py的文件才会被认作是一个包
在导入包的时候,Python会从sys.path中的目录来寻找这个包中包含的子目录
创建 init .py
- 目录中只有包含了叫做init .py的文件,才能被程序认作是包,模块才能被导入成功。现在我们就在msg文件夹下创建一个 init .py文件,并且一定要在文件中写入 all
- 目录中只有包含了叫做 init .py的文件,才能被程序认作是包,模块才能被导入成功。现在我们就在msg文件夹下创建一个 init .py文件,并且一定要在文件中写入 all
- 可以在 init .py中编写其他内容,在导入时,这些编写的内容就会被执行。
- 可以在 init .py中向sys.path添加当前被调用模块路径。
#通过from一次性导入所有的模块 #做一个包一定要创建一个__init__.py 这么文件中一定要设置 __all__ = ['允许导入的模块名'] from msg import * send.sendMsg() recv.recvMsg() math.getInfo()
重新加载
import test # import test #引入两边只输出一句hahaha import imp imp.reload(test) #重新导入test模块
共有 0 条评论