1. 程式人生 > >模塊的使用 import ,from import 的使用

模塊的使用 import ,from import 的使用

文件 hang global 往裏面 獨立 簡單 組織程序 測試 第一次

#!/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 的使用