欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python基础知识(七)常用模块----(五)

程序员文章站 2022-07-10 15:35:16
...

(七)常用模块----(五)

目录

(七)常用模块----(五)

7.1import

7.2from...import

7.3 __name__


7.1import

a.自己创建一个模块

python基础知识(七)常用模块----(五)
自己创建一个模块

 b.导入demo模块,并执行demo内部函数

import demo
demo.open()
#打开成功!

c.同一个模块不会被多次导入

导入过程: 先从sys.modules里查看是否已经被导入 ,如果没有被导入,就依据sys.path路径取寻找模块,找到了就导入 , 创建这个模块的命名空间,执行文件,把文件中的名字都放到命名空间里

总结模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

python基础知识(七)常用模块----(五)

import demo
import demo
import demo
#hello python

d.模块内部是一个独立空间,模块内部自己执行,不会因为使用者的使用改变模块自身的变量

python基础知识(七)常用模块----(五)
demo中a = 666
import demo
a = 777
demo.open()
demo.a
#hello python
#打开成功! 666
#666

e.给模块重新命名:给有相同功的能不同模块起同一个名字,简化代码量

    格式:import ... 模块名 as 重命名

#假如oracle和mysql都有写入功能
#根据用户的输入进行判断数据库的种类,就不用分开写两次写入功能了
if 数据库 == ‘oracle’:
    import oracle as db
elif 数据库 == ‘mysql’:
    import mysql as db

f.在一行导入多个模块

import demo1,demo2,demo3

7.2from...import

a.from...import...不会一次把模块里的所有文件导入,而是使用者根据需要导入,减少空间浪费

   格式:from 模块 import 变量名

   倒入后直接使用名字即可

from demo import open
open()

  如果重新定义了引用的文件,模块里的同名文件就会被覆盖

from demo import open
def open():
    print('11111111111111')
open()
'''
11111111111111
'''

b.同样可以使用重命名:from ... import ... as

c..同样可以使用多行导入:from demo import  open1,open2

e.from my_module import * 把demo中所有的不是以下划线(_)开头的名字都导入到当前位置

    __all__=['a']

python基础知识(七)常用模块----(五)

from demo import *
print(a)
open()


#hello python
#666
#NameError: name 'demo' is not defined

#a可以被使用
#open()不可以

7.3 __name__

在模块中 有一个变量__name__

当我们直接执行这个模块的时候,__name__ == '__main__'

当我们执行其他模块,在其他模块中引用这个模块的时候,这个模块中的__name__ == '模块的名字'

python基础知识(七)常用模块----(五)

import demo
print(__name__)
#demo
#__main__