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)
使用
asimport 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)
使用
asfrom 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 ...
 
随机推荐
- Spark面试题汇总及答案(推荐收藏)
			
一.面试题 Spark 通常来说,Spark与MapReduce相比,Spark运行效率更高.请说明效率更高来源于Spark内置的哪些机制? hadoop和spark使用场景? spark如何保证宕机 ...
 - 解决容器Docker内部启动计划任务crontab不生效不执行的问题
			
docker使用centos7镜像 首先编辑crond,注释#session required pam_loginuid.so: vi /etc/pam.d/crond 然后重启crond服 ...
 - 关于QtCreator中三种不同编译版本 debug、release、profile 的区别
			
debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值.会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉. release发布模式,编译 ...
 - axios简易封装
			
import axios from 'axios' import qs from 'qs' const rootUrl = "http://localhost:5139/Dev/" ...
 - 即时通讯技术文集(第11期):IM通信格式的选型及Protobuf专题 [共16篇]
			
为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第11 期. [- 1 -] 如何选择即时通讯应用的数据传输格式 [链接] http://www. ...
 - G1原理—1.G1回收器的分区机制
			
大纲 1.G1垃圾回收器的分区(Region大小+G1分区+Region过大过小和计算) 2.Region大小的计算原理(先转字节然后确定2的n次幂再通过1左移n位) 3.新生代分区及自动扩展(新生代 ...
 - Solution Set - “愿所有罗盘都指向那片海洋”
			
目录 0.「NOI Simu.」哈希计数 1.「NOI Simu.」运输计划 2.「NOI Simu.」时代的眼泪 3.「Subset」LP 的被动练习 4.「EC Final 2018」「LOJ # ...
 - Solution -「NOI 2017」「洛谷 P3826」蔬菜
			
\(\mathscr{Description}\) Link. 原题意比较简洁了.注意一下卖出的菜也会变质,且让它们代替未卖出的菜变质是更优的. \(\mathscr{Solution}\) ...
 - SpringMvc-初识
			
---------------------------------------------------------------- 1.环境搭建 1.1 jar包 <spring.version& ...
 - ORACLE存储过程,函数,包,游标
			
1. PL/SQL语句块PL/SQL语句块只适用于Oracle数据库,使用时临时保存在客户端,而不是保存在数据库.基本语法: declare 变量声明.初始化 begin 业务处理.逻辑代码 exc ...