模块的使用 import ,from import 的使用

Posted xg120688

tags:

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

#!/use/bin/python
# -*- conding:utf-8 -*-

# 只要运行模块就能产生一个名称空间
# 一.什么是模块
# 1什么是模块
# 最常见的场景,一个模块就是包含了一组成功的python文件,列如module.py,模块名是module
# 可以使用import module,
# 四个通用类别:
# 1 使用python编写的.py文件
# 2已被编译为共享库或DLL的C或C++扩展
# 3把一系列模块组织到一起的文件夹(注:文件下有一个__init__.py文件,该文件名称称之为包)
# 4使用c编写并链接到python解释器的内置模块
# 2为什么要用模块
# 1.从文件级别组织程序,更方便管理
# 2.拿来主义,提升开发效率
#
# 3.如何使用模块--》import 模块名
# 第一次导入模块,会发生3件事,重复导入只会引用之前加载好的结果
# 1.产生一个新的名称空间1
# 2.运行源文件代码,产生的名字逗存放于1的名称空间中,运行过程中global关键字指向的就是该名称空间
# 3.在当前名称空间拿到一个名字spam,该名字指向1的名称空间
# 引用spam.py中的名字:spam,名字
# (import spam 引用的是模块的使用的名称空间,运行到spam才产生一个新的名称空间,spam存在于当前的名称空间
# 强调:被导入的模块在执行过程中使用自己独立的名称空间作为全局名称空间

# 第二:起别名:import spam as sm

#第三 一行导入多个模块 :import time.sys.spam

# 4 如何使用模块—》from 模块名 import 名字
# 优点:引用时不用加前缀,简单
# 缺点:容易与当前名称空间的名字冲突
# from spam import money as n
# from spam import money,read1,read2,change
# from spam impor * #*包含除了下划线开头以外所有的名字

# 有下划线的代表不被*包含全部引用



# 一下是要注意的内容
# import的成果是什么,在当前名称空间拿到一个模块名
#一个模块就是包含一组功能的python文件
#只要导入模块,执行文件,就会产生一个名称空间 下一件事就是以这个名称空间为基准吧原文件代码一点点执行,
# 执行过程产生全局的名字都往里面丢


spam.py
#!/use/bin/python
# -*- conding:utf-8 -*-
#spam.py
#一个模块就是包含一组功能的python文件
#只要导入模块,执行文件,就会产生一个名称空间
print(‘from the spam.py‘)
__all__ = [‘read1‘,‘read2‘]
# _money = 1000

def read1():
print(‘spam模块:‘,money)

def read2():
print(‘spam模块‘)
read1()

def change():
global money
money = 0


模块的测试
#!/use/bin/python
# -*- conding:utf-8 -*-
import spam #得到一个值,就是名称空间的内存地址
# money = 1
# print(spam.money)
# print(spam.read1)
# print(spam.read2)
# print(spam.change)

#起别名
#import spam as sm
# print(sm.money)


# engine = input(‘>>:‘)
# if engine == ‘mysql‘:
# import mysql as sql
# elif engine == ‘oracle‘:
# import oracle as sql

# from spam import money,read1
#
# print(money)
# print(read1)
#案例1 不会与当前的名称空间产生冲突

import spam
import spam
import spam
import spam
#
# money = 1
# print(spam.money)
# print(spam.read1)
# print(spam.read2)
# print(spam.change)


# 测试2
# money = 1
# print(spam.money)

#测试2,以源文件为准
# def read1():
# print(‘from current‘)
# # spam.read1()
# spam.read2()


# # 测试三:
# money = 1
# spam.change()
# # print(money)
# spam.read1()


#起别名
# import spam as sm
# print(sm.money)
#
# engine = input(‘>>:‘)
# if engine == ‘mysql‘:
# import mysql as sql
# if engine == ‘oracle‘:
# import oracle as sql
# sql.parse()


#from....import....
# from spam import money,read1,read2,change
# money = 1
# print(money)
# print(read1)
#容易跟当前的产生冲突

# money = 1
# # read1() #运行都是以源文件为准的
# def read1():
# print(‘from curremt fimc‘)
#
# read2()


#全部的使用
from spam import *
# print(money,read1,read2,change,)
#
#
# money = 1
# change()
# print(money)


print(_money)




以上是关于模块的使用 import ,from import 的使用的主要内容,如果未能解决你的问题,请参考以下文章

from __future__ import unicode_literals, absolute_import

importlib模块

python学习_day27_模块与包

模块和包,sys的认识

使用最佳实践反应导入模块 [重复]

Java的import和Python的import的区别