如何导入Python模块

Posted K'illCode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何导入Python模块相关的知识,希望对你有一定的参考价值。

创建模块

 

 

 

 

创建模块就是创建一个Python文件。要注意的是设置的模块名不要与Python自带的模块名重复;还有模块文件的扩展名必须是.py

例如创建一个test_a模块定义一个A类包含一个a_say_hello的方法

#创建A类
class A():
    #在A类中定义一个包含a_say_hello()方法
    def a_say_hello(self):
        print('我是a,hello')

 

再创建一个test_b模块通过import引入模块test_a,调用A类里面的方法。

#导包/模块test_a
import test_a
#用包a中的A类实现一个对象b
b = test_a.A()
#调用test_a方法
b.a_say_hello()
'''
结果打印:
我是a,hello
'''

 

 

图片

通过import引入

图片

 

模块创建之后就可以调用了,我们需要使用关键字import导入包/模块。这个我们之前也有使用过。例如

import requests
import pandas
import openpyxl

 

如果模块名过长不容易记住,我们可以在导入时使用as关键字为其设置一个别名。例如

import pandas as pd
import openpyxl as op
import xlsxwriter as xw

 

注意:在调用模块中的变量、函数、或者类时,需要在其前面加上 '模块名' 。不然就会保存'NameError: name 'A' is not defined'例如:

import test_a
#用包a中的A类实现一个对象b
b = test_a.A()  #在调用模块中的变量、函数、或者类时,需要在其前面加上 '模块名'
#调用test_a方法
b.a_say_hello()

 

 

使用from...import导入

 

使用import导入模块时,每执行一次就会创建一个新的命名空间,并且需要执行的.py模块时,所有的变量、函数、或者类时,需要在其前面加上 '模块名'。

如果不想在每次导入模块时都创建新的命名空间而是导入到当前空间,这时可以使用 

from...[模块名称]...import...[变量、函数、类等]...

注意

1. 模块名称时区分大小写的。

2. 可以使用import * 来导入全部模块,不推荐。

3. 使用print(dir())可以查看使用import * 之后具体都导入了哪些模块。

print(dir())
'''
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
'''

 

总结:

Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块能定义函数,类和变量,模块⾥也能包含可执⾏的代码。

导⼊模块的⽅式有以下几种:

import 模块名
from 模块名 import 功能名
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名

 

如果使⽤ from .. import .. 或 from .. import * 导⼊多个模块的时候,且模块内有同名功能。当调⽤这个同名功能的时候,调⽤到的是后⾯导⼊的模块的功能。

#模块导入方式一
import time,math
time.sleep(2)
print(math.sqrt(64))
print(math.fabs(-100))

#模块导入方式二
from math import sqrt,fabs
print(sqrt(64))
print(fabs(-100))

#模块导入方式三
from math import *
print(sqrt(64))
print(fabs(-100))

# as定义别名
import math as m
print(m.sqrt(64))
print(m.fabs(-100))

# as定义别名
from math import sqrt as s,fabs as f
print(s(9))
print(f(-999))

以上是关于如何导入Python模块的主要内容,如果未能解决你的问题,请参考以下文章

有条件地导入 python 类的片段

Python如何调用别人写好的脚本

python中的模块

如何导入python中的模块

python之模块和包

Python模块:如何防止导入新模块调用的模块