Python调用自定义模块方法有什么

Python014

Python调用自定义模块方法有什么,第1张

import语句

自定义模块可以采用import语句来进行引入,其操作步骤是先导入模块,再调用模块中包含的函数,可将自定义模块放入当前目录,便于解释器路径搜索,以下是导入自定义hello.py模块,并调用World函数的实例:

#!/usr/bin/python

#-*- coding: UTF-8 -*-

#导入模块

import hello

#现在可以调用模块里包含的函数了

support.print_func("World")

输出结果为:

Hello World!

以上实例也可以采用from…import的方法进行实现,是指从一个模块中导入指定的部分到当前命名空间中,以上功能可写成:

#!/usr/bin/python

#-*- coding: UTF-8 -*-

from hello import World

如果要将模块中的所有内容全部导入当前命名空间,可采用from…import*的方法,具体实例如下:

#!/usr/bin/python

#-*- coding: UTF-8 -*-

from hello import *

还需注意,当要导入一个模块时,Python解释器会对模块的位置进行搜索,具体搜索顺序规律如下:

1.当前目录

2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录

3.如果都找不到,Python会察看默认路径。

sys.path是一个list,存放了当前所有import搜索的路径。

绝大多数情况下,首个元素是"",即空串,也就是说,当你import re的时候,首先搜索的是"re",这时候就会直接在当前目录搜索到re。如下图:

解决方法也有不止一个:

1,在当前目录创建一个子文件夹,例如mine,在mine里放一个__init__.py,不用有代码,空文件即可。使用的时候:import mine.re

2,在sys.path上做手脚,把第一个空串挪到最后面去:

import sys

sys.path = sys.path[1:]

sys.path.append("")

这样当前目录会跑到最后面去,从而达到最后搜索的目的。

不过这很可能有副作用,即你创建的模块,不能和前面搜索路径里的任何文件重名,否则会无法import你的模块。

这也是为什么默认把当前路径放在最前搜索的原因,因为是用户自己写的,显然优先级最高。

尽管就你的问题作出分析和提出一些可能的解决办法,但是严重不建议在实际工程起和系统模块重名的文件名,这是自找麻烦。

当然,研究探讨它的实现原理,始终是值得肯定的。

最后强调一下,当你在当前文件夹创建了一个sys.py时,方法2不好用!

python在一个模块中调用另一个模块中的变量步骤如下:

1、要实现变量的深度拷贝,需要使用到copy模块,导入这个模块。

2、定义一个列表变量A并进行赋值,然后将变量A赋值给变量B。

3、接着调用id()方法,分别打印变量A和变量B的id值,查看是否一致。

4、保存代码并直接使用Run这个python文件,发现打印的结果一致。

5、调用copy模块中的deepcopy()方法,按照对应的值赋值给变量C。

6、再次分别打印变量A和变量C的id值,结果发现它们不一致,说明这是深度拷贝。