日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 模块和包

發(fā)布時間:2023/12/10 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 模块和包 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

模塊和包:

  1.如何自己寫一個模塊

  import 模塊名
  模塊的導入相當于這個模塊所在的文件,模塊的多次導入不會重復執(zhí)行
  命名空間
   為模塊起別名 as 語句
   一行導入多個模塊 : 內(nèi)置 第三方 自定義
  from import
   命名空間 名字引用模塊中的名字
   為導入的名字起別名
   一行導入多個名字
   *和__all__的關系 : __all__只能約束*

  
  示例文件:自定義模塊my_module.py,文件名my_module.py,模塊名my_module
   #my_module.py print('from the my_module.py')money=1000def read1():print('my_module->read1->money',money)def read2():print('my_module->read2 calling read1')read1()def change():global moneymoney=0

  模塊可以包含可執(zhí)行的語句和函數(shù)的定義,這些語句的目的是初始化模塊,它們只在模塊名第一次遇到導入import語句時才執(zhí)行(import語句是可以在程序中的任意位置使用的,且針對同一個模塊很import多次,為了防止你重復導入,python的優(yōu)化手段是:第一次導入后就將模塊名加載到內(nèi)存了,后續(xù)的import語句僅是對已經(jīng)加載大內(nèi)存中的模塊對象增加了一次引用,不會重新執(zhí)行模塊內(nèi)的語句),如下?

#demo.py import my_module #只在第一次導入時才執(zhí)行my_module.py內(nèi)代碼,此處的顯式效果是只打印一次
          #'from the my_module.py',當然其他的頂級代碼也都被執(zhí)行了,只不過沒有顯示效果.
import my_module import my_module import my_module''' 執(zhí)行結果: from the my_module.py '''

?




  模塊引用中的情況 :
   1.模塊的循環(huán)引用 ***
   模塊之間不允許循環(huán)引用
   2.模塊的加載與修改 *
   已經(jīng)被導入的模塊發(fā)生了修改,是不會被感知到的
   要想修改的模塊被正在運行中的程序感知到,重啟這個程序
   3.把模塊當成腳本執(zhí)行 *****
   if __name__ == '__main__':
   代碼
   寫在這里面的代碼只有這個文件被當做腳本執(zhí)行的時候才執(zhí)行
   4.模塊的搜索路徑 *****
   和被當做腳本執(zhí)行的文件 同目錄下的模塊,可以被直接導入
   除此之外其他路徑下的模塊 在被導入的時候需要自己修改sys.path列表

包:
  包是一種通過使用‘.模塊名’來組織python模塊名稱空間的方式。

1. 無論是import形式還是from...import形式,凡是在導入語句中(而不是在使用時)遇到帶點的,都要第一時間提高警覺:這是關于包才有的導入語法

2. 包是目錄級的(文件夾級),文件夾是用來組成py文件(包的本質(zhì)就是一個包含__init__.py文件的目錄)

3. import導入文件時,產(chǎn)生名稱空間中的名字來源于文件,import 包,產(chǎn)生的名稱空間的名字同樣來源于文件,即包下的__init__.py,導入包本質(zhì)就是在導入該文件

強調(diào):

  1. 在python3中,即使包下沒有__init__.py文件,import 包仍然不會報錯,而在python2中,包下一定要有該文件,否則import 包報錯

  2. 創(chuàng)建包的目的不是為了運行,而是被導入使用,記住,包只是模塊的一種形式而已,包即模塊

?

從包中導入模塊:

  

import import glance.api.policy glance.api.policy.get()import glance.api.policy as policy policy.get()from import from glance.api import policy policy.get()from glance.api.policy import get get()

?

轉載于:https://www.cnblogs.com/zbw582922417/p/9525644.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的python 模块和包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。