python的命名空间_如何在python中定义命名空间?

Python中的“命名空间”更多地由磁盘上的代码布局定义,而不是任何特定语法.给定目录结构:

my_code/

module_a/

__init__.py

a.py

b.py

module_b/

__init__.py

a.py

b.py

__init__.py

main.py

假设每个a.py和b.py文件包含一个函数fn(),解析命名空间的导入语法就像这样(来自main.py):

from module_a.a import fn # fn() from module_a/a.py

from module_a.b import fn # fn() from module_a/b.py

from module_b.a import fn # fn() from module_b/a.py

from module_b.b import fn # fn() from module_b/b.py

此时,fn()在main.py中可用,并将调用您导入的任何实现.

也可以使用from module import *语法,但不鼓励更具体:

from module_a.a import *

这里,并且在module_a / a.py中定义的任何其他符号也可用.

如果我们想要访问module_a / a.py的fn()以及module_b / b.py中的fn(),我们可以做以下两件事之一:我们使用from模块导入东西作为语法:

from module_a.a import fn as module_a_fn

from module_b.b import fn as module_b_fn

并在我们的main.py中使用它们作为module_a_fn()和module_b_fn(),或者我们可以直接导入模块并在代码中引用它,因此在main.py中:

import module_a.a

import module_a.b

module_a.a.fn() # call fn() from module_a/a.py

module_a_b.fn() # call fn() from module_a/b.py

我希望这有助于更多地阐明使用方法.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值