python【系列教程】之模块和包

一、模块化编程

(1)导入模块

#导入整个sys模块
import sys
#获取程序全路径名称
print(sys.argv[0])

#给sys模块起别名
import sys as s
print(s.argv[0])

#导入两个模块
import  sys as s,os as o
print(s.argv[0])
#输出平台上的路径分隔符
print(o.sep)

#从sys模块中导入argv成员变量
from  sys import  argv as v,winver as w
#导入sys模块所有成员
from sys import *

(2)定义模块module1.py 文件

"""
这是第一个模块说明,该模块包含以下内容:
my_book 变量
say_hi(user)函数
user 用户类
"""

print('这是module1')
my_book = '疯狂python讲义'


def say_hi(user):
    print('%s 您好,欢迎学习python' % user)


class user:
    def __init__(self, name):
        self.name = name

    def walk(self):
        print('%s 正在走路' % self.name)

    def __repr__(self):
        return self.name


#只有在运行当前py文件时__name__ 才会变为__main__,增加if判断防止其他的py文件
#在import当前模块的时候执行测试代码
if __name__ == '__main__':
    test_my_book()
    test_say_hi()
    test_user()

 module1.py 的模块名就是 moudule1,使用模块可以实现很好的代码复用,导入导出模块

二、加载模块

 

 

 

三、使用包

 

 

四、查看模块内容

 

 

 五、常见模块

(1)sys模块

#常见的模块
import  sys
l = [e for e in dir(sys) if not e.startswith('_')]
print(l)

 动态修改模块加载路径

(2)os模块

 

 

 (3)random模块

 (4)time模块

 

 

 (5)json支持模块

 

 

 

 (6)正则表达式re模块

 

 

 

 

 

 

 

 

 

 

 

 (7)容器相关类

set集合有如下两个特征

set不记录元素的添加顺序,元素不允许重复

set集合是可变容器,程序可以改变容器中的元素。与set对应的还有f'rozenset集合,是set的不可变版本,它的元素是不可变的

 deque双端队列

 

 (8)python的堆操作: heapq模块

 

 

 (9)collections下的容器支持

# 定义三个map
a, b, c = {'ko': 90}, {'go': 93}, {'sw': 89}
m = ChainMap(a,b,c)

print(m)
print(m['ko'])

 

 

 

 

 

 

 

 

 

 (10)函数相关模块

itertools模块

 

 

 

functools 模块

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章