Python模块2021-08-27

1、模块

概述:

目前代码比较少,写在一个文件中还体现不出什么缺点,但是随着代码量越来越多。代码就越来越难以维护
为了解决难以维护的问题,我们把很多相似功能的函数分组,分别放到不同的文件中取,这样每个文件所包
含的内容相对较少,而且对于每一个文件的大致功能可用文件名来体现,很多编程语言都是这么来组织代码
结构的。一个.py文件就是一个模块。

优点:

1、提高代码的可维护型
2、提高了代码的复用度,当一个模块完毕,可以被很多个地方引用
3、引用其他的模块(内置模块和三方模块和自定义模块)
4、避免函数名和变量名的冲突

2、使用标准库中的模块

#引入模块
import sys
import time
import datetime
print(sys.argv)
'''
#获取命令行参数列表
for i in sys.argv:
    print(i)
name = sys.argv[1]
age = sys.argv[2]
hoby = sys.argv[3]
print(name, age, hoby)
'''
#自动查找所需模块的路径列表
print(sys.path)

3、使用自定义模块(import语句)

引入模块

import语句

格式:
import module1[, module2[,module3[....., modulen]]]
import time, random, os
#引入自定义模块,不用加.py后缀
import fanfan
#一个模块只会被引入一次,不管你执行了多少次import。防止模块被多次引用

#使用模块中的内容
#格式: 模块名.函数名/变量名
fanfan.sayGood()
print(fanfan.TT)

fanfan.py

#一个.py文件就是一个模块
def sayGood():
    print("fanfan is a good man")

def sayNice():
    print("fanfan is a nice man")

def sayhandsome():
    print("fanfan is a handsome man")

TT = 100

4、使用自定义模块(from…import…)

from… import语句

作用:

从模块中导入一个指定的部分到当前的命名空间

格式:

from module import name1[, name2[,....namen]]
from fanfan import sayGood, sayNice
'''
程序内部的函数可以将模块中的同名函数覆盖
def sayGood():
    print("*********")
'''
sayGood()
sayNice()
# sayHandsome()没有引用

fanfan.py

#一个.py文件就是一个模块
def sayGood():
    print("fanfan is a good man")

def sayNice():
    print("fanfan is a nice man")

def sayhandsome():
    print("fanfan is a handsome man")

TT = 100

5、使用自定义模块(from…import*)

from…import*语句

作用;

把一个模块中的所有内容全部导入当前命名空间
from fanfan import *
#最好不要过多的使用
'''
程序内部的函数可以将模块中的同名函数覆盖
def sayGood():
    print("*********")
'''
sayGood()

fanfan.py

#一个.py文件就是一个模块
def sayGood():
    print("fanfan is a good man")

def sayNice():
    print("fanfan is a nice man")

def sayhandsome():
    print("fanfan is a handsome man")

TT = 100

6、__name__属性

__name__属性:

模块就是一个可执行的.py文件,一个模块被另一个程序引用,我们不想让模块中的某些代码执行
可以用__name__属性来使程序仅调用模块中的一部分
import fanfan
fanfan.sayGood()

每一个模块都有一个__name__属性,当其值等于__main__时,表明该模块自身在执行,
否则被引入了其他文件
当前文件如果为程序的入口文件,则__name__属性的值为__main__

fanfan.py

#一个.py文件就是一个模块
if __name__ == "__main__":
    print("这是fanfan文件")
else:
    print(__name__)
    def sayGood():
        print("fanfan is a good man")
    def sayNice():
        print("fanfan is a nice man")
    def sayhandsome():
        print("fanfan is a handsome man")

7、包

思考:如果不同的人编写的模块同名了怎么办

解决:为了解决模块命名的冲突,引入了按目录来组织模块的方法,称为包

特点:引入包以后,只要顶层的包不与其他人发生冲突,那么模块就不会与别人的发生冲突

注意:目录只有包含一个叫做“init”的文件才被认作一个包,
主要是为了避免一些滥竽充数的的名字,基本上目前这个文件中什么也不写

import a.fanfan#a的路径为F:\pythonProject\object\first\35、模块\7、包\a
import b.fanfan#b的路径为F:\pythonProject\object\first\35、模块\7、包\b
a.fanfan.sayGood()
b.fanfan.sayGood()
a.fanfan.sayNice()

8、安装第三方模块

python安装时
	Windows勾选了pip和add Python.exe to path
	Mac:无需安装
	Linux:无需安装

安装三方模块,需要知道模块的名字
例如:
安装Pillow(Pillow 非常强大的处理图像的工具)
	pip install Pillow(在黑屏终端操作)
Windows如果报错输入pip install --upgrade pip
#引入了三方库
from PIL import Image

#打开图片
im = Image.open("1111.jpg")

#查看图片 信息
print(im.format, im.size, im.mode)

#设置图片大小
im.thumbnail((104, 50))

#保存成新图片
im.save("temp.jpg", "JPEG")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值