05_模块(import & from)
模块(import & from)
导入模块
在和.py同级文件夹下创建一个自定义的模块
fibo.py
def fib_return(x):
a, b = 0, 1
result = []
while a < x:
result.append(a)
a, b = b, a + b
return result
def fib_no_return(x):
a, b = 0, 1
while a < x:
print(a, end=' ')
a, b = b, a + b
print()
import module_name
import fibo list = fibo.fib_return(500)
print(list)
from module_name import item
from fibo import fib_no_return, fib_return fib_no_return(500)
使用
as
import fibo as fibonacci fibonacci.fib_no_return(500) from fibo import fib_no_return as fib
fib(500)
dir()函数
内置函数 dir()
用于查找模块定义的名称。返回结果是经过排序的字符串列表:
>>> import fibo, sys
>>> dir(fibo)
['__name__', 'fib', 'fib2']
>>> dir(sys)
['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__',
'__interactivehook__', '__loader__', '__name__', '__package__', '__spec__',
'__stderr__', '__stdin__', '__stdout__', '__unraisablehook__',
'_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework',
'_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook',
'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix',
'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing',
'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info',
'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info',
'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth',
'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags',
'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile',
'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval',
'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',
'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value',
'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks',
'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pycache_prefix',
'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setdlopenflags',
'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr',
'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info',
'warnoptions']
没有参数时,dir()
列出当前已定义的名称:
>>> a = [1, 2, 3, 4, 5]
>>> import fibo
>>> fib = fibo.fib
>>> dir()
['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']
包
在.py同级文件夹中新建一个文件夹
导入单个模块 import package
使用模块中的函数必须引用其全名
import my_math.fibonacci.fibo my_math.fibonacci.fibo.fib_no_return(500)
另一种导入方法: from package import item
from my_math.fibonacci import fibo as fib fib.fib_no_return(500)
使用
as
from my_math.fibonacci.fibo import fib_no_return as fib fib(500)
从包中导入*
使用
from sound.effects import *
时会发生什么?你可能希望它会查找并导入包的所有子模块,但事实并非如此。因为这将花费很长的时间,并且可能会产生你不想要的副作用,如果这种副作用被你设计为只有在导入某个特定的子模块时才应该发生。
唯一的解决办法是提供包的显式索引。
import
语句使用如下惯例:如果包的__init__.py
代码定义了列表__all__
,运行from package import *
时,它就是被导入的模块名列表。发布包的新版本时,包的作者应更新此列表。如果包的作者认为没有必要在包中执行导入 * 操作,也可以不提供此列表。例如,sound/effects/__init__.py
文件可以包含以下代码:
__all__ = ["echo", "surround", "reverse"]
这意味着 from sound.effects import *
将导入 sound.effects
包的三个命名子模块。
相对导入
当包由多个子包构成(如示例中的
sound
包)时,可以使用绝对导入来引用同级包的子模块。 例如,如果sound.filters.vocoder
模块需要使用sound.effects
包中的echo
模块,它可以使用from sound.effects import echo
。
你还可以编写相对导入代码,即使用
from module import name
形式的 import 语句。 这些导入使用前导点号来表示相对导入所涉及的当前包和上级包。 例如对于surround
模块,可以使用:
from . import echo
from .. import formats
from ..filters import equalizer
05_模块(import & from)的更多相关文章
- python 导入模块 import 理解
--python 导入模块 import 理解 -----------------------------------2014/03/18 python 导入一个模块的过程要求有一个叫做“路径搜索”的 ...
- 模块(import语句,from...import语句,_name_属性)
1, 什么是模块? 模块就是一系列功能的集合体 模块分为四个通用的类别: 1), 使用python编写的.py文件(*****) 2), 已被编译为共享库或DLL的C或C++扩展 3), 把一系列模块 ...
- 模块 import 与from
什么是模块:就是一系列功能的集合体 模块的来源 :1内置模块 2 第三方模块 3 自定义模块 模块的格式: 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 ...
- python 全栈开发,Day28(复习,os模块,导入模块import和from)
一.复习 collections 增加了一些扩展数据类型 :namedtuple orderdict defaltdict队列和栈time 时间 三种格式 : 时间戳 结构化 字符串random 随机 ...
- Python进阶(八)----模块,import , from import 和 `__name__`的使用
Python进阶(八)----模块,import , from import 和 __name__的使用 一丶模块的初识 #### 什么是模块: # 模块就是一个py文件(这个模块存放很多相似的功能, ...
- python 模块import(26)
一.模块简介 python开发中,每一个.py文件都可以看作是一个模块,模块内部的函数或者方法可以被其他模块调用,至于函数或者方法是具体如何实现的,调用者不需要关心. 假如项目中既含有UI也有逻辑代码 ...
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- Python标准模块--import
1 模块简介 作为一个Python初学者,你首先要学会的知识就是如何引入其它模块或者包.但是,我发现有些开发者虽然使用Python很多年,依然不了解Python引入机制的灵活性.这篇文章,我们就会研究 ...
- 模块import,from ..import...
首次导入模块发生3件事 1.创建一个模块的名称空间 2.执行文件spam.py,将执行过程中产生的名字都放到模块的名称空间中 3.在当前执行文件中直接拿到一个名字,该名字就是执行模块中相对应的名字 f ...
- Python导入模块-Import
#1语法importimport module1,module2,module3,module4 #2from xx import xx 语句from module import name1,name ...
随机推荐
- 【Python】【爬虫】【爬狼】004_正则规则模板及其应用
# 正则规则模板 与 应用(一) 先看这些视频,是在哪个div里面的 for datapage in soup.find_all("div", class_="lpic& ...
- 【转载】Spring Cloud Gateway排错、调试技巧总结
http://www.imooc.com/article/290824 本文总结Spring Cloud Gateway的排错.调试技巧.欢迎留言补充! 第一式:Actuator监控端点 借助Actu ...
- Qt数据库应用4-数据打印到纸张
一.前言 数据能够打印到pdf文件,当然可以打印到纸张,而且使用qprinter默认就是打印到纸张的,上一篇文章写得功能是打印到pdf,其实还要单独特殊设置打印到文件,并指定格式为pdf.不指定输出文 ...
- Windows 配置多版本JDK
@ 目录 前言 简介 一.下载并安装多个JDK版本 二.配置环境变量 2.1 点击高级系统设置 2.2 选择环境变量 2.3 配置CLASSPATH 2.4 配置JAVA_HOME 2.5 配置Pat ...
- 已有docker镜像构建过程分析
转载请注明出处: 1.使用docker history进行分析 docker history 命令用于查看指定镜像的历史层信息,它显示了镜像创建过程中的每一层,包括创建时间.创建者.大小和注释等信息. ...
- linux 安装 Ollama 框架
概述 Ollama 是一款旨在简化大语言模型(LLM)本地部署的工具,支持 Windows.Linux 和 MacOS 系统.它提供了一个用户友好的环境,让开发者可以轻松地运行和调优如 Qwen.Ll ...
- Mac terminal proxy
cat >> ~/.bash_profile << EOF function proxy_on() { export http_proxy=http://127.0.0.1:7 ...
- CDS标准视图:功能位置 I_FunctionalLocation
视图名称:I_FunctionalLocation 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location' @Analytics: ...
- MSXML2.DOMDocument加载Internet资源
MSXML2.DOMDocument加载Internet资源 The information in this article applies to: Microsoft XML, versions 2 ...
- 让 LLM 来评判 | 选择 LLM 评估模型
基础概念 这是 让 LLM 来评判 系列文章的第一篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 什么是评估模 ...