python编程语言模块_编程语言之Python(二) - 模块和包

1. 模块(module)

对于大型项目,需要组织类之间的结构。

什么是模块?

简单来说,模块就是一个Python文件,仅此而已。

模块名全部采用小写,用下划线分割。

(eg: game_main, game_register)

举例说明:

假设我们有一个database.py模块,其中包含一个Database类。另外我们有一个product.py模块。product.py模块需要依赖Database类。

我们可以有几种写法。

写法1(模糊导入):

import database

db = database.Database()

写法2(精确导入类):

from database import Database

db = Database()

写法3(精确导入+别名):

from database import Database as DB

db = DB()

一次导入多个类

from database import Database, Query

导入模块中所有类和函数

from database import *

2. 包(package)

包就是目录。

但是它和目录的区别是:

包是一个目录下模块的集合

包目录下必须存在一个空的文件init.py(没有这个文件我们无法从目录导入模块)

包名全部采用小写,不用下划线,层级包名用.号分割。

(eg: com.genesis, com.genesis.infra)

一个例子:

代码目录层级

door_dir/

main.py

ecommerce/

__init__.py

database.py

products.py

payments/

__init__.py

alipay.py

几种导入方式

绝对导入:

import ecommerce.products

product = ecommerce.products.Product()

或者

# 推荐

from ecommerce.products import Product

product = Product()

或者

from ecommerce import products

product = products.Product()

相对导入(推荐):

我们想在products模块中导入database相关类,由于它们是同级目录,可以这样:

from .database import Database

db = Database()

如果我们的位置是在alipay.py中,由于database.py是它的上级目录中的文件,需要这样:

from ..database import Database

注意: 我们可以用更多的点号来访问更上层的模块,例如三个点代表上上级目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值