import pythoninit_关于python:每次从该模块导入任何东西时都会运行__init__.py吗?...

本问题已经有最佳答案,请猛点这里访问。

我有一个叫做core的模块,它包含许多python文件。

如果我这样做:

from core.curve import Curve

是否有人打电话给__init__.py?我可以将适用于所有核心文件的导入语句移到__init__.py中以保存重复的内容吗?__init__.py中应该包含什么?

I've got a module called core, which contains a number of python files.

如果它包含python文件,那么它不是一个模块,而是一个包含python文件的目录,如果它包含__init__.py文件,那么它最终是一个包。

If I do: from core.curve import Curve does __init__.py get called?

它从未被"调用"——它不是一个函数——但是当包或它的某个子模块在一个进程中第一次被导入时,它就被加载了。然后储存在sys.modules中,随后的进口产品会在那里找到它。

Can I move import statements that apply to all core files into init.py to save repeating myself?

不。名称空间是每个模块,而不是每个包。无论如何,这将是一个非常糟糕的主意,在这种情况下,你所说的"重复你自己"在维护你的代码时是一个真正的帮助者(明确的导入意味着你不含糊地知道哪个符号来自哪个模块)。

What should go into init.py?

从技术上讲,你可以把你想要的任何东西放在你的__in

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值