Python中的模块用法

xiaoxiao2021-03-01  13

模块

什么是模块:

   对于一个复杂的功能,为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。     在Python中,一个.py文件就称之为一个模块(Module)。即一个文件被看作一个独立的模块,一个模块也可以被看做是一个文件     使用模块可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

模块分为三种:

1.内置模块:如sys, os, subprocess, time, json 等等 2.自定义模块:自定义模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。 3.开源模块:公开的第三方模块, 如 https://pypi.python.org/pypi 。可以使用pip install 安装,类似于yum 安装软件

一.导入模块

import 用来导入模块,即在当前python源文件中可以使用导入的模块中的所有东西

test01: title = 123 def demo(): print 'hello world!' class Cat(): pass test02: title = 123 def demo(): print 'hello world!' class Dog(): pass import test01 # 导入test01模块 import test02 # 导入test02模块 dog = test02.Dog() # 调用模块test02中的Dog类创建对象 print dog cat = test01.Cat() print cat print test01.title # 调用模块test01中的全局变量title print test02.title test01.demo() # 调用test01中的函数demo() test02.demo()

二.重命名导入的模块

在当前文件中可以使用新的名字来调用模块中的东西 import 模块名 as 新名 ——————指定模块的别名

import test01 as CatModule # 给test01模块重命名为Catmodule import test02 as DogModule # 给test02模块重命名为Dogmodule print CatModule.title # 用新的模块名调用全局变量title print DogModule.title dog = DogModule.Dog() # 用新的模块名调用类Dog print dog cat = CatModule.Cat() print cat CatModule.demo() # 用新的模块名调用函数demo() DogModule.demo()

三.选择性导入

1.from test01 import Cat test01是模块名,Cat是模块中的东西,如果想要在新的文件中直接使用Cat,则可以使用这种方式,直接导入需要的东西。 2.如果两个模块中含有同名的东西,则有效的是后来导入的模块,因为后边导入的覆盖了前边导入的

from test01 import demo # 只导入test01中的demo()函数 from test01 import Cat # 只导入test01中的Cat类 from test02 import demo # 导入test02中的demo函数,与已经导入的test01中的demo重名,后者有效 demo() cat = Cat() print cat

四.寻找模块的过程

python的解释器在导入模块的时候,会: 1.搜索当前目录指定的模块文件,如果有就直接导入 2.如果没有,再搜索系统目录 注意:在开发时,给文件起名,不要和系统模块文件重名

五.name的用法

name的用法

__name__属性可以做到,测试模块的代码只在测试情况下被运行 __name__是python的一个内置属性,记录一个字符串 (1)如果是被其他文件导入时,输出__name__就是导入的模块名 (2)如果是当前执行的程序,__name__输出就是就是__main__ # 全局变量,函数,类,直接可以执行的代码不是向外界提供的工具 def demo(): print 'hello world!' # 如果直接在模块中输入__name__,得到的是__main__ if __name__ == '__main__': # 判断是在源文件中还是在导入模块中 print __name__ demo() print 'have a nice day!' 在另外一个源文件中导入该.py源文件,直接运行不会输出结果
转载请注明原文地址: https://www.6miu.com/read-4050205.html

最新回复(0)