<commit_before><commit_msg>add Python导入.md<commit_after>---
layout: post
title: Python导入
categories: [Python]
description: some word here
keywords: keyword1, keyword2
---

# 基本概念

模块：一个\.py结尾的文件是模块。

包：一个包含\_\_init\_\_\.py文件目录的是包。

# 导入方法

导入模块的本质：就是把python文件解释一遍。

导入包的本质：就是执行该包下的\_\_init\_\_\.py文件。

导入模块的方法：
* import module\_name，导入一个模块
* import module\_name,module2\_name，导入多噢个模块
* from module\_name import name，导入module\_name里边的name
* from module\_name import \*，导入module\_name模块里边的所有变量，不建议使用！

导入包的方法：
* import 包的名字

注意：
* from a import b：a必须是模块；b可以是模块，也可以是模块里的函数、类。
* import a：a必须是模块。
* from a import \* ：默认导入存在的所有模块、函数、类别。**如果设置了\_\_all\_\_属性，则只导入该属性中定义的模块、函数、类别**。
* 模块的循环引用的问题。 [(重要)Python模块和包的详细说明](https://www.cnblogs.com/xiangweilai/p/9542232.html)
* When importing the package, Python searches through the directories on sys.path looking for the package subdirectory.
* In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later.
* Contrarily, when using syntax like import item.subitem.subsubitem, each item except for the last must be a package; the last item can be a module or a package but can’t be a class or function or variable defined in the previous item.

# 参考

[Python 中\_\_all\_\_的作用](https://blog.csdn.net/orangleliu/article/details/49848413)

[Absolute vs Relative Imports in Python](https://realpython.com/absolute-vs-relative-python-imports/#absolute-imports)

[from-import-vs-import](https://stackoverflow.com/questions/9439480/from-import-vs-import)

[python -m参数](https://www.jianshu.com/p/05712dd48be2)

[python 脚本的启动模式（python -m以模块方式启动）](https://blog.csdn.net/wonengguwozai/article/details/80480034)

[Python实现调用另一个路径下py文件中的函数方法总结](https://www.jb51.net/article/141643.htm)

[(重要)Python模块和包的详细说明](https://www.cnblogs.com/xiangweilai/p/9542232.html)

[Python官网 Modules](https://docs.python.org/3.6/tutorial/modules.html#packages)

{'fraction_non_alphanumeric': 0.12836123795027904, 'fraction_numerical': 0.029426686960933535, 'mean_word_length': 5.300319488817891, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 9, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '343178', 'n_tokens_mistral': 908, 'n_tokens_neox': 928, 'n_words': 154}