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

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

目录

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

7.1import

7.2from...import

7.3 __name__


7.1import

a.自己创建一个模块

自己创建一个模块

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

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

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

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

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

import demo
import demo
import demo
#hello python

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

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']

from demo import *
print(a)
open()


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

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

7.3 __name__

在模块中 有一个变量__name__

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

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

import demo
print(__name__)
#demo
#__main__

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值