关于 Python 的 import,你了解多少?

python的import详解,史上最细 以前在使用import的时候经常会因为模块的导入而出现一些问题,以及一些似懂非懂半疑惑半糊涂的问题,索性花了点时间研究了一些python引用的方法,并且动手操作试验了一下,深有感触,特留此文以作总结,如有不当之处欢迎评论指正 本文会尽我所能详细描述,字数会比较多,希望各位耐心看完。 首先我觉得应该先了解一下python的引用是怎么引用的 我们首先新建一个python文件demo.py print(dir()) dir()命令是获取到一个object的所有属性,当传值为空时默认传入的是当前py文件 阅读详情

一、前言

写过 Python 的猿猿肯定对 import 不陌生。但 Python 在 import module 时会执行相关的代码,你知道吗? Python import 还有其他的什么特性呢?通过这一篇文章,彻底掌握 Python import

二、Python import 详解

2.1 Python import 介绍

在Python中,import是用于导入模块和模块中定义的变量、函数、类等内容的关键字。import的作用是扩展Python的功能,并允许在代码中使用其他模块提供的功能。

2.2 Python import 例子

下面是import的主要作用和使用场景,并给出相应的例子:

  1. 导入模块:使用import可以导入一个完整的模块,以便在代码中使用该模块中定义的功能。例如:
python
复制代码
import math

print(math.pi)  # 使用math模块中的常数pi
  1. 导入模块中的特定内容:使用from module import name语法可以导入模块中的特定函数、变量或类,以便直接在代码中使用,而不需要使用模块名称作为前缀。例如:
python
复制代码
from math import sqrt

print(sqrt(16))  # 直接使用sqrt函数,无需使用math.sqrt
  1. 给导入的模块或内容起别名:使用import module as alias或from module import name as alias语法可以为导入的模块或内容指定一个别名,以便在代码中使用更短的名称。例如:
python
复制代码
import numpy as np

print(np.array([1, 2, 3]))  # 使用别名np代替numpy
  1. 导入模块中的所有内容:使用from module import *语法可以导入模块中的所有内容,使其在代码中直接可用。但这种做法通常不被推荐,因为它会导致命名冲突和可读性问题。例如:
python
复制代码
from math import *

print(sin(pi/2))  # 直接使用导入的sin和pi,但不推荐这种写法

这些是import的主要作用和使用场景。通过导入其他模块,可以扩展Python的功能,并重用已有的代码。使用合适的导入方式和别名,可以使代码更加简洁和可读。

2.3 Python import 进一步解释

2.3.1 Python import module

在Python中,当一个模块被导入时,模块中的代码会被执行。然而,模块中的代码只会在第一次导入时执行一次。之后,如果再次导入同一个模块,Python解释器会直接使用已经加载的模块,而不会再次执行模块中的代码。

这种行为是为了确保**模块中的代码只会被执行一次****,以避免重复执行相同的操作。通过导入模块,我们可以在需要时使用其中定义的函数、类和变量,而不必重新执行模块中的代码。

值得注意的是,如果在模块中存在全局级别的可执行语句(例如函数定义以外的代码),则在导入时会执行这些语句。因此,模块的导入可能会触发一些副作用操作,例如打印输出或初始化全局变量。

比如:创建test1.py

python
复制代码
print("我是 test1,我被执行了")

def say_hello():
    print("hello world test1")

再创建 test2.py

python
复制代码
def say_hello():
    from test import test1
    test1.say_hello()


if __name__ == '__main__':
    for i  in range(10):
        say_hello()

执行 test2.py 输出

text
复制代码
我是 test1,我被执行了
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1
hello world test1

2.3.2 Python import package

在Python中,当导入一个包(package)时,包本身不会被执行。只有在使用该包中的模块或对象时,才会执行相应的代码。

当导入一个包时,Python解释器会查找并执行该包下的__init__.py文件。__init__.py文件可以包含一些初始化代码,用于设置包的环境、导入子模块或执行其他需要在导入时执行的操作。但这些代码只会在首次导入包时执行一次。

例如,假设我们有一个名为my_package的包,它的结构如下:

markdown
复制代码
my_package/
    __init__.py
    module1.py
    module2.py

在__init__.py文件中,我们可以放置一些初始化代码:

python
复制代码
print("Executing initialization code in my_package")

# 导入子模块
from . import module1
from . import module2

然后,我们可以在另一个脚本中导入my_package包:

python
复制代码
import my_package

print("Import completed")

运行上述脚本,输出如下:

css
复制代码
Executing initialization code in my_package
Import completed

从输出结果可以看出,在导入my_package包时,__init__.py中的初始化代码被执行了一次。然后,Import completed被打印出来,表示导入完成。

但注意,这里的执行是指__init__.py中的代码被执行,并不是包中的所有模块都被导入和执行。只有在使用my_package中的具体模块或对象时,才会执行相应的代码。

总结起来,当导入一个Python包时,包本身的代码不会被执行,只有在使用包内的模块或对象时才会执行相应的代码。 __init__.py文件中的初始化代码会在首次导入包时执行一次,可用于设置包的环境和导入子模块。

三、总结

介绍了 Python 中 import 关键字的使用方法和工作原理。通过 import ,可以导入模块和模块中定义的内容,扩展 Python 的功能。文章提供了导入模块、导入模块中的特定内容、给导入的模块或内容起别名以及导入模块中的所有内容的例子,展示了 import 的多种用法。

此外,文章解释了模块的代码只会在第一次导入时执行一次的特性,以及导入包时执行__init__.py文件的初始化代码。最后,总结了导入包时只有在使用包内的模块或对象时才执行相应代码,而__init__.py文件中的初始化代码只会在首次导入包时执行一次。

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

优快云大礼包:全网最全《全套Python学习资料》免费分享🎁

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉优快云大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

​

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉优快云大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

​

深入了解Python的import机制 深入了解Python的import机制 1. 引言 Python中官方的定义为:Python code in one module gain access to the code in another module by the process of importing it. 在平常的使用中,我们一定会使用from xxx import xxx或是import xx这样的导包语句,假如你研究过Python中的包你就会发现,很多包中会包含__init__.py这样的文件,这是为什么呢? 这篇博文中,我 阅读详情

相关推荐

import有什么用,python中怎么使用import

import`是Python中重要的关键字,用于引入其他模块或库的功能。通过使用`import`,我们可以重用现有的代码,扩展功能,以及模块化开发。在使用`import`时,我们可以导入整个模块或部分功能,并且可以为导入的模块或功能指定别名。当使用`import`时,需要注意处理可能发生的错误,并遵循一些注意事项,以确保代码的正确性和可维护性。通过合理使用`import`,我们能够更加高效和灵活地开发Python程序。

这家伙很懒,什么都没有留下 4595

【python】import的用法总结

import的学习笔记

ting的博客 4万+

Python中的import语句及其作用

Python的import语句是一种强大的工具,它使我们能够使用其他模块中的功能。我们可以引入整个模块,使用别名,选择性地导入函数或类,导入模块的所有内容,以及自定义模块的导入。请注意,为了使import语句正常工作,我们需要确保导入的模块已经安装在Python环境中,或者模块文件位于Python解释器可以找到的路径中。在import语句中,我们还可以为导入的模块指定一个别名,以便在代码中更方便地使用。如果我们希望导入模块中的所有内容,而不需要使用模块名作为前缀,可以使用通配符(*)。

CodeHeroicX的博客 367

Python 3.x | 史上最详解的 导入(import)

win10+Python 3.6.3 一、理解一些基本概念 1、包、模块 模块 module:一般情况下,是一个以.py为后缀的文件。其他可作为module的文件类型还有”.pyo”、”.pyc”、”.pyd”、”.so”、”.dll”,但Python初学者几乎用不到。 module 可看作一个工具类,可共用或者隐藏代码细节,将相关代码放置在一个module以便让代码更好用、易懂,让cod...

神是念着倒 26万+

RFSOC实战解析(一):深入RF Data Converter的时钟与数据接口设计

本文深入解析RFSOC中RF Data Converter的时钟与数据接口设计,涵盖GHz采样、数据流处理、时钟树同步及AXI-Stream接口实战。通过详细案例和调试技巧,帮助工程师高效配置IP核,优化ADC/DAC性能,解决跨时钟域和信号完整性等关键问题。

weixin_30955617的博客 473

保姆级教程:在通达信V7.611上配置欧奈尔RPS曲线(附完整公式与每日更新流程)

本文提供通达信V7.611配置欧奈尔RPS曲线的保姆级教程,涵盖从环境准备、基础设置到核心公式配置的全流程。详细讲解如何创建股票池、编写EXTRS基础公式及RPS显示公式,并附每日更新流程与实战应用技巧,帮助投资者精准捕捉强势股。

weixin_30000735的博客 463

python中的import、from import以及import as的区别

首先介绍一下import和include的区别或者说import相对include的好处: import导入的内容只会被包含一次,在引入之前会检测是否已经存在该模块,不存在才会被引入,而include是不会做判断的。使用import在递归包含的时候不会出错,不会引起交叉编译的问题。 此外,使用include引入头文件对其引入顺序也有一定的要求。 import import是python提供的...

半暖的博客 3万+

双臂复合机器人眼在手外标定实战:从原理到D435标定流程详解

本文详细解析了双臂复合机器人中眼在手外标定的核心原理与实战流程。通过阐述坐标系转换与AX=XB方程,重点介绍了使用Intel RealSense D435相机进行标定的完整步骤,包括环境搭建、数据采集、计算与验证,并提供了关键的避坑指南,帮助工程师实现相机与机械臂基座间的精确坐标对齐。

weixin_29100927的博客 449

深入了解 Python 的 import 语句

本文记录导包的一些常见用法以及一些典型容易犯错的地方。

PengXing_Huang的博客 1116

Supervisor 安装与使用

一、Supervisor 介绍 Supervisor 是一个用 Python 编写的进程管理工具,它可以用于监控和控制类 UNIX 操作系统上的多个进程。它是一个客户端/服务器系统,其中 Supervisor 的服务器端称为 supervisord,负责启动管理的子进程、响应客户端命令、重启崩溃或退出的子进程、记录子进程的 stdout 和 stderr 输出,以及处理子进程生命周期中的事件。客...

疯子丶pony的博客 3863

Windows 11/10系统盘被BitLocker锁了别慌!手把手教你用manage-bde命令找回密钥并解锁

本文详细介绍了当Windows 11/10系统盘被BitLocker锁定后的恢复方法,重点讲解了如何使用manage-bde命令行工具找回密钥并解锁加密驱动器。通过进入Windows恢复环境、诊断锁定状态、提取恢复密钥ID以及执行解锁操作等步骤,帮助用户有效解决BitLocker锁定问题,同时提供了后续防护优化建议和高级故障排除技巧。

weixin_42542669的博客 1461

python的import功能,你需要了解的导入机制

一文了解python的import机制

kymppcds的博客 1991

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1730

Python import的用法你真的了解吗

本文详细讲解import 、模块和包的作用

linmi2006的专栏 1808

Linux 服务器上部署 OpenClaw完整教程

2. 全局安装 OpenClaw 3. 初始化配置 配置模型提供商 方式一:使用配置命令(推荐) 方式二:直接编辑配置文件 在 部分添加: 配置多个模型提供商 如果你使用 Antigravity 本地代理,可以同时配置多个模型: 配置飞书集成 1. 创建飞书应用 访问 飞书开放平台 创建企业自建应用 记录 App ID 和 App Secret 2. 配置应用权限 在飞书开放平台,为应用添加以下权限:重要: 必须使用 长连接(WebSocket) 模式,不要使用 HTTP 回调!在飞书开放

Maynor的博客 5249

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

Robot_PLC_HMI_Automation 1万+

快速了解 Python 中的 import 的用法

看过不少其他介绍,感觉简单问题复杂化了。本文5分钟解释清楚主要脉络,如有困惑,不妨一读。

程序猿视角 969

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

你该了解的Python import 与 from... import

对于python新手来说也应该经常会看到python代码中有import 和 from… import 的身影,常说的这两种方式都是为了导入包或者模块,那么到底什么是包?什么是模块?它们之间又有啥区别么?… 请看本文讲解。 模块 模块到底指的是什么呢?模块,英文为 Modules,用一句话总结:模块就是 Python 程序,换句话说,任何 Python 程序都可以作为模块。 一般情况下,模块是一个以 .py 为后缀的文件。当然,其他可作为module的文件类型还有 “.pyo”、 “.pyc”、 “.pyd

I'm George 的博客 1551

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python3 安装dbutils 但是import失败_深入了解import声明

import声明即用于导入模块,比如import numpy as np,但是涉及复杂工程目录时容易搞得稀里糊涂,于是我专门使用了python3.7来测试并解决import相关问题。基本定义module:即模块,也就是中各种.py文件,模块名就是文件名built-in-module:即内置模块,就是在安装python的时候系统编译在python解释器中的,比如numpypackage:任何包含__...

weixin_39854440的博客 1150

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

import math在python种中的意思,Python中import使用

import的使用举例:#coding:utf-8import mathr=5print("半径是5的圆面积是:%.2f"%(math.pi*r**2))import math的意思为从Python标准库中引入math.py模块,这是Python中定义的引入模块的方法。import的标准语法如下:import module1[, module2[,… moduleN]]表示允许一个import导入...

weixin_36048947的博客 2万+
上一篇: 爬虫2024最佳学习攻略入门到精通【含思维导图】
下一篇: Python3.13的JIT是如何实现的
AI大模型学习
博客等级 码龄4年 2471粉丝 620原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值