第五章 模塊 1.自定義模塊: 1. 模塊分類: 1. 內置模塊(標準庫) python解釋器自帶的.py文件(模塊) 2. 第三方模塊(各種大神寫的) 需要額外下載(併發編程pypi) 3. 自定義模塊(自己寫的) 不用額外下載 2. 每一個py文件就是一個模塊 import 導入模塊 模塊的好處 ...
第五章 模塊
1.自定義模塊:
模塊分類:
- 內置模塊(標準庫)-- python解釋器自帶的.py文件(模塊)
- 第三方模塊(各種大神寫的)-- 需要額外下載(併發編程pypi)
- 自定義模塊(自己寫的)--不用額外下載
每一個py文件就是一個模塊
import #導入模塊
模塊的好處:
- 避免些重覆代碼
- 可以多次利用
- 拿來主義
導入模塊發生的事情:
- 當前的名稱空間中開闢一個新空間(test)
- 將模塊中所有的代碼執行
- 通過 模塊名.函數名 進行查找函數
使用別名使文件名更短:
import test as t
print(locals())#查看當前空間的變數
i mport test
print(locals())
#調用導入模塊的函數
test.func()
#使用別名
import test as t
t.func()
- 不同模塊使用同一別名做相容性
msg = {1:"扳手",2:"螺絲刀"}
choose = input(msg)
if choose == 1:
import meet as t
elif choose == 3:
import test as t
t.func()
- from :
from 和import區別:
import:#將整個模塊運行
缺點:占用記憶體大。
優點:不會和當前文件定義的變數或者函數發生衝突
from:
缺點:會與當前的文件定義的變數或者函數發生衝突,(可以用別名解決)
優點:占用記憶體小
from * :--拿模塊所有
會出現覆蓋現象,不能解決,不建議使用
__all__ = ["可被導入的函數名和變數名"]#寫在模塊中配合from * 使用指定要拿的
name = 'cc'
def func():
print('is 666')
from test import *
print(name)
func()
name = "ww"
from test import name as n#別名
print(name)
print(n)
模塊導入的坑
例如:不要三個py文件相互導入,會形成環路
模塊的兩種用法:
腳本:(在cmd中執行 python text.py
模塊:自測函數不會被導入
def func():
print(1)
if __name__ == '__main__':#自測介面
func()
導入路徑:
相對路徑:
from day15.t1 import meet print(meet.name)
絕對路徑:
#錯誤引用 from r"D:\" import meet from ../ #正確引用 from sys import path print(sys.path) path.insert(0,"D:\\") import meet print(meet.name)
sys.path中模塊的順序:自定義 > 內置 > 第三方
2.time --時間模塊
- time.time():--時間戳,浮點數,可運算
- time.sleep():--睡眠 #秒
import time
print(time.time() + 5000)
time.sleep(3)#睡眠3秒
- time.strftime("格式化","結構體時間"):將時間戳、結構體時間轉換成字元串時間
- time.gmtime():--元組形式 命名元組,結構體時間,格林尼治時間
- time.localtime():電腦當前時間,結構體時間
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.gmtime())
print(time.gmtime()[0])
print(time.gmtime().tm_year)
#將時間戳轉換成字元串時間
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(15000)))
- time.strptiem():將字元串時間轉換成結構化時間
- time.mktime():將結構化時間轉換成時間戳
print(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S"))
#將字元串時間轉換成時間戳
print(time.mktime(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S")))
print(time.mktime(time.gmtime()))
3.datetime 模塊
用處:記錄日誌使用,計算時間
from datetime import datetime,timedelta
print(datetime.now())#獲取當前時間
print(type(datetime.now()))#--對象
print(datetime(2019,5,20,13,14,00))#指定日期標準化
print(datetime(2019,5,20,13,14,00) - datetime(2019,5,20,13,14,00))
#將當前時間轉換成時間戳
t = datetime.now()
print(t.timestamp())
#將時間戳轉換成當前時間
import time
print(datetime.fromtimestamp(time.time()))
print(datetime.fromtimestamp(150000))
#字元串轉成對象
print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S")))
#將對象轉成字元串
print(str(datetime.now()))
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
#timedelta 時間運算.加減
print(datetime.now() + timedelta(hours = 30 * 24 *12))