首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python理解-导入和Dunder方法

Python理解-导入和Dunder方法
EN

Stack Overflow用户
提问于 2022-03-19 17:47:41
回答 1查看 87关注 0票数 2

Python双下划线方法隐藏在Python中的任何地方和后面!我很好奇,这是如何具体地与翻译工作。

代码语言:javascript
复制
import some_module as sm

根据我目前的理解:

  • 导入搜索请求的模块
  • ,它将结果绑定到本地赋值(如果给定)
  • ,它利用__init__.py。。。?

似乎正在发生的事情比我的理解范围更大。我知道我们使用__init__()进行类初始化。它作为我们类的构造函数。我不明白调用导入是如何利用__init__.py的。

当我们运行import

  • How是__init__.py时,到底发生了什么?

  • ,我们能操纵这个dunder (如果我们真的想的话?)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-19 17:51:31

import some_module将寻找两件事中的一件。它要么在搜索路径中查找some_module.py,要么在some_module/__init__.py中查找。其中只有一个应该存在。当涉及到模块时,__init__.py唯一的意思是“这是表示该文件夹的模块”。因此,请考虑这个文件夹结构。

代码语言:javascript
复制
foo/
  __init__.py
  module1.py
bar.py

然后,可用的三个模块是foo (对应于foo/__init__.py)、foo.module1 (对应于foo/module1.py)和bar (对应于bar.py)。按照惯例,foo/__init__.py通常会从module1.py导入重要的名称,并为了方便而重新导出其中的一些名称,但这绝不是一个要求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71540600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档