1-python包和模块-基本概念解析

概念解析

  • 模块
  • 框架

什么叫模块?

概念解析:为了使代码更容易维护,提高代码重用价值,可以将一组相关功能的代码写入一个单独的.py文件中,供别人使用,这个.py文件就被称为一个模块。

什么是包?

  • 包是一个有层次的结构目录
  • 具体表现形式,包含__init__.py文件目录,这个目录下有一个__init__.py的文件和其他模块或者子包。

下面看一下如何从 方法——函数——类——模块——包 的转变

第一步,最简单的需求,打印出 1,2,3…n,我们可以直接print(1),print(2),print3),print(4),…print(n),就可以得到想要的结果

print(1)
print(2)
print(3)

运行结果:可以得出,没有任何问题

1
2
3

第二步,甲方加需求了,再打印两份1,2,3…n的结果,同样的,可以复制一下上面的print方法

print(1)
print(2)
print(3)

print(1)
print(2)
print(3)

print(1)
print(2)
print(3)

运行结果,可以得到想要的结果,但是这代码看起来太低级了,这么多重复的代码,维护不方便,如果后面需求改了,需要每个代码都需要修改

1
2
3
1
2
3
1
2
3

这里要引入,函数封装的概念,将这个方法封装在函数里面,给后面的代码调用,同样实现上面的功能,但是代码就简洁好多

def t1():
    print(1)
    print(2)
    print(3)

t1()
t1()
t1()

查看一下运行的结果

1
2
3
1
2
3
1
2
3

现在由于项目增加了功能,需要增加多一个函数方法,我们可以增加多一个t2

def t1():
    print(1)
    print(2)
    print(3)
def t2():
    print(11)
    print(22)
    print(33)
t1()
t2()

运行结果

1
2
3
11
22
33

上面可以得到想要的结果,但是后面如果有t1,t2,t3,t4…tn 个函数,而且每个函数实现的功能不一样,这个时候,我们又需要将函数进行分类了,我们引入类的概念,将功能相关的函数封装在一起。

class Tool:
    @classmethod
    def t1(cls):
        print(1)
        print(2)
        print(3)
    @classmethod
    def t2(cls):
        print(11)
        print(22)
        print(33)
class Tool1:
    pass
class Tool2:
    pass
class Animal:
    @classmethod
    def x1(cls):
        pass
    def x2(cls):
        pass
class Dog:
    pass
class Cat:
    pass

  • 上面可以看出,我们封装了很多方法,将很多方法放在不同的类里面,
  • 实现了很多功能,代码也很简洁,
  • 但是如果需要修改某个功能,或者别人只需调用其中一个功能,显得不太方便
  • 当类和方法太多,而这些类又是实现不同功能,需要引入模块的概念,将功能相关的类放入同一个模块中。
  • 模块就是将功能相关的代码写入同一个.py文件中
    将Tool,Tool1,Tool2…Tooln工具类的类放入t_module模块,将动物相关的放入 a_module 模块。
.
├── a_module.py
├── t_module.py

t_module.py模块的类

class Tool:
    @classmethod
    def t1(cls):
        print(1)
        print(2)
        print(3)
    @classmethod
    def t2(cls):
        print(11)
        print(22)
        print(33)
class Tool1:
    pass
class Tool2:
    pass

a_module.py的类

class Animal:
    @classmethod
    def x1(cls):
        pass
    def x2(cls):
        pass
class Dog:
    pass
class Cat:
    pass

现在我们尝试调用

import t_module

t_module.Tool.t1()
t_module.Tool.t1()
t_module.Tool.t1()

运行结果,同样实现了打印的功能

1
2
3
1
2
3
1
2
3

如果项目比较庞大,需要实现的功能很多,为了遵循python函数的高内聚低耦合的原则,我们将功能相关的模块放到同一个文件夹里面,并且在这个文件夹里面,创建一个__init__.py的文件,那么这个文件夹就变成了一个包的概念。

├── package1
│   ├── __init__.py
│   ├── t1.py
│   └── t2.py

什么叫做库?

  • 参照其他编程语言的叫法
  • 完成一定功能的代码集合
  • 具体表现可以是一个模块,也可以是一个包(比如Pillow库)

什么是框架?

  • 是一个架构层面的概念
  • 从库功能的角度来看,解决一个开放性问题而设计的具有一定约束性的支撑结构
  • 通过一个框架,可以快速实现一个问题解决的框架,按照框架的角色去填充,就可以完成一个项目。(flask,django)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值