Python创建模块及模块导入的方法,python创制模块导入

Python创建模块及模块导入的方法,python创建模块导入

本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如下:

python学习手册中写道:

定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。

比如说,下面的代码输入到一个文件中,就可以看作是一个模块:

def printme(var):
  print var
if __name__ == '__main__':
    printme(1)

假设说输入到a.py中,那么import a就可以把这个模块导入。

然后可执行a.printme(3),屏幕即可打印出3:

>>> a.printme(3)
3
>>>

一个模块顶层定义的变量,会自动变成模块的属性。例如:

data=[1,2,3]
def printme(var):
  print var
if __name__ == '__main__':
    printme(1)

data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。

奥门威尼斯网址 ,引入模块示例如下:(假定此时data=[1,2,3]未定义)

>>> import a
>>> a.data

Traceback (most recent call last):
 File "<pyshell#1>", line 1, in <module>
  a.data
AttributeError: 'module' object has no attribute 'data'
>>> reload(a)
<module 'a' from 'C:/py\a.pyc'>
>>> a.data

Traceback (most recent call last):
 File "<pyshell#3>", line 1, in <module>
  a.data
AttributeError: 'module' object has no attribute 'data'
>>>

从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=[1,2,3],重新加载a模块,并输出data属性:

>>> reload(a)
<module 'a' from 'C:/py\a.py'>
>>> a.data
[1, 2, 3]
>>> 

这里的reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。

上面a.data,就是访问模块中的属性。

上面的例子是导入一个文件作为一个模块。

其实python的模块导入还有更丰富的内容。

除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。

看下面例子:

在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。

那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import
aa.bb.a,就可以导入模块a了。

希望本文所述对大家的Python程序设计有所帮助。

本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如…

python根据路径导入模块的方法,python导入模块

本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下:

常规做法如下:

import sys 
sys.path.append('C:/full/path') 
from foo import util,bar 

而要直接通过路径

import imp 
util = imp.load_source('util', 'C:/full/path/foo/util.py') 

使用时使用util.method,此时并没有定义method
method = util.method后才可以直接用method

希望本文所述对大家的Python程序设计有所帮助。

python有三种导入模块的方法

导入根目录下的模块

Python学习心得——模块的导入

在Python语言的编辑器里,除了默认的内置函数外,其他函数的调用,必须先通过import语句将其导入才能使用。

对于python相对路径,绝对路径的问题

from . import ……
from (扩展包) import
*(*表示该扩展包里的全部函数,也可以单个列出来,如: from sys import
exit )
还有就直接 import xxxx
 

其一,

在根目录下建myfile.py,里面写

import语句导入整个函数模块

导入方法: import 函数模块名

python的模块引入问题?

在import之前,你可以
import sys
sys.path.append(‘你的module的目录‘)就可以import这个目录里的module了。
 

本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下:
常…

import modname : 模块是指一个可以交互使用,或者从另一Python
程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。模块可以通过这种方法来使用其它模块的功能。

title=”hello world”然后保存

示例

新建一个名为func_test.py的文件,内容为:

def func_1():    for i in range:        printdef func_2():    for j in range:        print

保存并退出,在IDLE内通过import func_test导入模块,然后执行func_test.func_1()将会打印出

>>>01234

这里要注意的是 通过模块名中间连接点号与函数名连接方式调用函数

用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包含模块的名字。所以不能只使用
funcname,而应该使用 modname.funcname

方法1:直接用import加模块名字,不加后缀

用import语句导入指定函数

导入方式: from 模块名 import 函数名1[,函数名2,…]

其二,
from modname import funcname
from modname import fa, fb, fc
或者  from modname import *
与第1种方法的区别:funcname
被直接导入到本地名字空间去了,所以它可以直接使用,而不需要加上模块名的限定
* 表示,该模块的所有公共对象(public objects)都被导入到
当前的名称空间,也就是任何只要不是以”_”开始的东西都会被导入。
modname没有被定义,所以modname.funcname这种方式不起作用。并且,如果funcname如果已经被定义,它会被新版本(该导入模块中的版本)所替代。如果funcname被改成指向其他对象,modname不能不会觉察到。
建议:

import myfile

示例

模块仍然是func_test.py
IDLE内输入from func_test import func_1
直接执行func_1()同样会出现上面的结果,但因为只导入了func_1,所以调用func_2将会报错
至于不同于示例一的地方是使用某函数时,不再需要在函数的前面加上模块名和连接点号

1)如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用
from module import
2)如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module
import
3)如果模块包含的属性和方法与你的某个模块同名,你必须使用import
module来避免名字冲突
4)尽量少用 from module import *
,因为判定一个特殊的函数或属性是从哪来的有些困难,并且会造成调试和重构都更困难。
其三
内建函数__import__()
除了前面两种使用import关键字的方法以外,我们还可以使用内建函数
__import__() 来导入 module。两者的区别是,import
后面跟的必须是一个类型(type),而__import__()
的参数是一个字符串,这个字符串可能来自配置文件,也可能是某个表达式计算结果。例如
mymodule = __import__ (’module_name’)
附注:
1)模块的内容都放在一个模块文件中,如 mymodule 的内容应该放在PYTHONPATH
目录下的一个mymodule.py中,C实现的除外
2)包可以将几个模块名称空间组织起来, 如A.b 就表示在包A中的一个子模块b
可以单独导入某一个子模块,如Python文档中给出的例子
import sound.effects.echo
这样必须使用全称对里面的对象进行引用,如
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
还可以使用下面的语句来加载echo子模块
from Sound.Effects import echo
它在没有包前缀的情况下也可以使用, 所以它可以如下方式调用:
echo.echofilter(input, output, delay=0.7, atten=4)
不主张从一个包或模块中用import *
导入所有模块,因为这样的通常会导致可读性很差。
from Package import
specific_submodule的用法并没有错,实际上这还是推荐的用法,除非导入的模块需要使用其它包中的同名子模块(the
importing module needs to use submodules with the same name from
different packages).
综上所述,一般情况应该使用import , 但有几个例外
1)module文档告诉你要用from-import的
2)导入一个包组件。需要一个包里面的某个子模块,一般用from A.b import
c比import A.b.c 更方便 且不会冒混淆的危险.

print(myfile.title)

用import语句导入所有函数

导入方式:from 模块名 import *

“*”代表的是该模块内的所有函数

打印出hello world

示例

仍然是func_test.py文件
IDLE内输入from fun_test import *
这次不论是调用func_1还是func_2都可以打印出结果

方法2:from myfile import title

通过别名方式导入

导入方式:import 模块名 as 别名

>>>import func_test as f>>>f.func_1()

结果仍与上相同,该方法用于解决模块名字过长的问题

2018.12.19

print(title)

打印出hello world

导入其他目录下的模块

import sys

sys.path.append(‘E:\python’)  #导入E盘下Python文件夹下的模块

from myfile import title

print(title)

则打印出hello world

发表评论

电子邮件地址不会被公开。 必填项已用*标注