马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 我是python小白 于 2019-4-22 20:38 编辑
包和面向对象
概述:
目前代买比较少,卸载一个文件还体现不出什么缺点,单是随着代码量越来越多,代码就越来越难以维护。
为了解决难以维护的问题,我们打很多相似功能的函数分组,分别放到不同的文件中取。这样每个文件所包含的内容相对较少,而且对于每个文件的大概功能可用文件名来体现。很多函数语言都是这么来举止代码结构。一个。py文件就是一个模板。
优点:
1、提高代码的可维护性
2、提高了代码的复用度,当一个模块完毕,可以被多个地方引用
3、引用其他的模块,(内置模块和三方模块和自定义模块)
4、避免函数和变量名的冲突
使用标准模块#引用模块
import sys
#获取命令行参数的列表
for i in sys.argv:
name = sys.argv[1]
c= sys.argv[2]
d = sys.argv[3]
#自动查找所需模块的路径列表
print(sys.path)
使用自定义模块
一个.py文件就是一个模块
#自定定义文件 file.py
def passdd():
pass
def printdd():
print("helloword")
def ccdd():
pass
#引入模块
#import语句
#格式: import modile1 [,module2[, module3[modulen]]]
#引入了自定义模块,不用加。py后缀
import file
#注意:一个模块只会被引入一次,不管你执行了多少次import、防止模块多次引用
#使用模块中的内容
#格式:模块名。函数名/变量
file.passdd()
#用from引入模块
from ..... import 语句
#作用是:从模块中导入一个指定的部分到当前命名空间
#格式:from module import name1[,name2 [,...... namen]]
from sunck import sayGood, sayNice
#有弊端:程序内的函数可以将陌路爱中同名函数覆盖。
使用form.......import *语句
作用:吧一个莫夸中所有的内容全部导入当前命名空间
from sunck import *
#最好不用过多的使用
(_ _name_ _属性)"""
__name__属性:
模块就是一个可执行。py文件,一个模块被另一个程序引用。我不想让模块中的某些代码执行,可以用__name__属性来使程序仅调用模块的一部分。
每一个模块都有一个__name__属性,当其值等于“__main__"时,表明该模块自身在执行。否则被引入了其他文件
"""
包
思考:如果不同的人编写的模块同名怎么办?
解决:为了解决莫夸命名的冲突,引入了按目录来住址模块的方法,称为包
特点:引入了包,只要顶层的包不与其他人发生冲突,那么模块都不会与别人的发生冲突。
目录只有包含--init__.py的文件才被视为是一个包,主要是为了避免一些滥竽充数的名字,基本上目前这个文件中什么也不用写。
第三方的包
安装三方模块,需要知道模块名字
pillow 他是非常强大的处理图像的工具库
pip install pillow 下载库
install --upgrade pip 升级pip
pillow模块from PIL import Image
#打开图片
im = Image.open("111.jpg")
#查看图片的信息
print(im.format,im,seze, im.mode)
#设置图片的大小
im.thumbnail(150, 100)
#保存成新图片
im.save("temp.jpg", "JPEG")
面向对象
什么是面向对象?
数据及数据和操作方法放在一起,作为一个项目依赖整体--对象
通过一个简单的尾部接口与外界发生关系,对像与对象之间通过消息进行通信。
理解面向对象
面向对象的特点:
类与对象的关系:
使用计算机语言就是不断的在描述现实生活中的实物
python中描述事物通过类的形式体现,类是具体实物理念上的定义
对象即是该类实物实实在在的个体
类的定义:
识货中描述事物就是事物的名称/属性和行为
python中用类来描述是事物也是如此
​ 属性:对应类中的成员变量
​ 行为:对应类中的成员方法
定义类其实在定义类中的成员(成员变量和成员方法)
拥有相同属性和行为的对象都可
类的设计
​ 类名:
​ 属性:
​ 行为:
|