import机制

import定义:Python code in one module gains access to the code in another module by the process of importing it.

一 模块module

文件,类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。

二 包package

目录,目录里的文件即上述模块,可以导入所有模块也可以导入部分模块。

注意目录里为首的一个文件__init__.py。假如子目录中也有 __init__.py 那么它就是这个包的子包了。

导入包的时候__init__.py文件会自动执行,这为管理很多文件进行统一初始化提供了很好的帮助。

关于导入路径查找:

程序会从sys.path中从前到后寻找这些目录下有没有我们要找的模块或者包。一旦找到即停止并返回路径。目前排在第一位的一般是当前程序所在路径,其次是各种安装包路径(所以安装包里隐藏了很多自带的模板文件,在任何自定义的程序文件中都可以直接拿来导入)。

sys.path有两种方式查看:

1.执行代码,查看输出结果。

import sys, os

print(‘--------‘)

for path in sys.path:

print(path)

print(‘--------‘)

2.在Console视图区域点击Option-Show sys.path contents。

关于导入路径增加:

可以用sys.path.append(‘c:\\mypythonlib‘) ,注意加入到运行环境的环境变量后,文件运行结束后,这个环境变量就会被释放。

也可以用sys.path.insert(1, ‘c:\\mypythonlib‘) 序号从0开始,表示最大优先级,加入的也是临时搜索路径,程序退出后失效。

示例:

文件a.py里定义了函数print1和print2,同时定义了变量k1和k2。

def print1(i):

print "hello {}".format(i)

def print2(i):

print "hello {}".format(i)

k1 = 111

k2 = 222

文件b.py导入文件a.py后,被导入的文件名称a即作为当前程序文件的一个对象存在,敲入a.后会自动弹出a文件里定义的函数和变量,可以将其看作a的属性。

import a

a.print1("cj1")

a.print2("cj2")

print a.k1+a.k2

输出:

hello cj1

hello cj2

333

假如文件a.py是放在文件夹FileA里,那么import a这一行代码可以修改为from FileA import a或者from FileA import *,后面的代码不需修改。

https://www.jb51.net/article/152450.htm *****

https://blog.csdn.net/sty945/article/details/78750950 ****

https://cloud.tencent.com/developer/news/308692 ***

原文地址:https://www.cnblogs.com/myshuzhimei/p/11751282.html

时间: 2024-10-09 13:49:03

import机制的相关文章

Java的package和import机制

一些人用了一阵子的Java,可是对于 Java 的 package 跟 import 还是不太了解.很多人以为原始码 .java 文件中的 import 会让编译器把所 import 的程序通通写到编译好的 .class 档案中,或是认为 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念. 让我们先了解一下,Java 的 package 到底有何用处. 其实,package 名称就像是我们的姓,而 class 名称就像是我们的名字.package 名称有很多 .

理解使用static import 机制(转)

J2SE 1.5里引入了“Static Import”机制,借助这一机制,可以用略掉所在的类或接口名的方式,来使用静态成员.本文介绍这一机制的使用方法,以及使用过程中的注意事项. 在Java程序中,是不允许定义独立的函数和常量(当然,准确的说,只是被final修饰.只能赋值一次的变量)的.即使从它们本身的功能来看,完全不需要依附于什么东西,也要找个类或接口作为挂靠单位才行(在类里可以挂靠各种成员,而接口里则只能挂靠常量). 挂靠的方法,是把它们加上static修饰符,定义为这个类或接口的静态成员

python 的import机制2

http://blog.csdn.net/sirodeng/article/details/17095591 python 的import机制,以备忘: python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用.   如果想使用非当前模块中的代码,需要使用Import,这个大家都知道. 如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件

深入探讨 Python 的 import 机制:实现远程导入模块

1.24 深入探讨 Python 的 import 机制:实现远程导入模块 所谓的模块导入( import ),是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用. 在 Python 中使用 import 关键字来实现这个操作,但不是唯一的方法,还有 importlib.import_module() 和 __import__() 等. 也许你看到这个标题,会说我怎么会发这么基础的文章? 与此相反.恰恰我觉得这篇文章的内容可以算是 Python 的进阶技能,会深入地探讨并以真实案例讲

Python Import机制

最近在看<Python源码剖析>,对Python内部运行机制比以前了解的更深入了,感觉自己有机会也可以做个小型的动态脚本语言了,呵呵,当然是吹牛了.目的当然不是创造一个动态语言,目的只有一个:更好的使用Python.看到模块导入那块的时候,终于对模块导入机制比较了解了,以防忘记特记录下来. 模块的搜索路径 模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend)即可.下面是sys.path在Windo

java中import机制(指定import和import *的区别)

java中有两种包的导入机制,总结如下: 单类型导入(single-type-import),              例如 import java.io.File; 按需类型导入(type-import-on-demand),例如 import java.io.*; 这里分析一下这两种导入类型的大致工作原理供大家参考. 单类型导入比较好理解,仅仅导入一个public类或者接口. 对于按需类型导入(  import java.io.*;   ),有人误解为导入一个包下的所有类,其实不然,看名字

JAVA package与import机制

http://files.cnblogs.com/files/misybing/JAVA-package-and-import.pdf import org.apache.commons

【转】python之import机制

原图转 啄木鸟社区<import 迷宫>:http://wiki.woodpecker.org.cn/moin/MiscItems/2008-11-25

Python的import机制

模块与包 在了解 import 之前,有两个概念必须提一下: 模块: 一个 .py 文件就是一个模块(module) 包: __init__.py 文件所在目录就是包(package) 当然,这只是极简版的概念.实际上包是一种特殊的模块,而任何定义了 __path__ 属性的模块都被当做包.只不过,咱们日常使用中并不需要知道这些. 两种形式的 import import 有两种形式: import ... from ... import ... 两者有着很细微的区别,先看几行代码. from s