Python模塊(進階3)


1. python中模塊和包的概念

  代碼越來越多的時候

  • 將所有代碼放入一個py文件:無法維護
  • 如果將代碼分拆放入多個py文件,好處: 同一個名字的變量互不影響

  引用其他模板

1 # test.py # 自身模塊名test
2 import math # 引用math模塊
3 print math.pow(2,10) # 調用math模塊的函數

 

  模塊多了以后,也容易重名 解決: 同名的模塊放入不同的包中

  引用完整的模塊

1 # test.py # 自身模塊名test
2 import p1.util # 引用p1.util模塊
3 print p1.util.f(2,10) # 調用p1.util模塊的f函數

 

  在文件系統中

  • 包就是文件夾
  • 模塊就是xxx.py文件
  • 包也可以有多級

  如何區別包和普通的目錄

  • 包下面有__init__.py
  • 注意每層都必須要有!

2. python之導入模塊

  要使用一個模塊,我們必須首先導入該模塊。Python使用import語句導入一個模塊。

1 # -*- coding: utf-8 -*-
2 import math, logging
3 print math.log(10)   # 調用的是math的log函數
4 logging.log(10, 'something')   # 調用的是logging的log函數

 

  使用別名from...import log as logger

1 # -*- coding:utf-8 -*-
2 from math import log
3 from logging import log as logger   # logging的log現在變成了logger
4 print log(10)   # 調用的是math的log
5 logger(10, 'import from logging')   # 調用的是logging的log
6 import os
7 print os.path.isdir(r'/data/webroot/resource/python')
8 print os.path.isfile(r'/data/webroot/resource/python/test.txt')

 

3. python中動態導入模塊

  如果導入的模塊不存在,Python解釋器會報 ImportError 錯誤

1 try:
2     import json
3 except ImportError:
4     import simplejson as json
5 print json.dumps({'python':2.7}) # {"python": 2.7}

 

4. python之使用__future__

  Python的新版本會引入新的功能,但是,實際上這些功能在上一個老版本中就已經存在了。要“試用”某一新的特性,就可以通過導入__future__模塊的某些功能來實現。

      Python 2.7的整數除法運算結果仍是整數

1 print 10 / 3 # 3
2 
3    Python 3.x已經改進了整數的除法運算,“/”除將得到浮點數,“//”除才仍是整數
4 print 10 / 3 # 3.33333333333
5 print 10 // 3 # 3

 

  在Python 2.7中引入3.x的除法規則,導入__future__的division

1 from __future__ import division
2 
3 print 10 / 3 # 3.33333333333
4 from __future__ import unicode_literals
5 s = 'am I an unicode?'
6 print isinstance(s, unicode)

 

5. python之安裝第三方模塊

  • 內置了許多有用的模塊
  • 可以安裝第三發模塊

  python提供的模塊管理工具

  • easy_install
  • pip(推薦,已內置到python2.7.9)

  pip install web.py

  https://pypi.python.org/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM