亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python的包(package)和模塊(module)介紹

發布時間:2020-08-10 02:02:14 來源:ITPUB博客 閱讀:309 作者:ckxllf 欄目:編程語言

  Python的包(package)和模塊(module)

  一、Python的包(package)

  包:初期理解為文件夾,用于裝多個模塊

  作用:一種管理Python模塊命名空間的形式,采用"點語法" os.path

  包和文件夾之間的區別:Python的包中有一個特殊的文件__init__.py文件,前期里面不寫任何內容,但是,就是為了告訴編譯器,當前這個目錄不是普通目錄,是一個包

  創建方式:選中工程,創建Python package(使用pycharm編輯器)

  二、Python的模塊(module)

  1.概述

  為了解決維護問題,一般情況下,在一個完整的項目中,會將特定的功能分組,分別放到不同的文件中,在使用的過程中,可以單獨維護,各個不同的文件之間互不影響,每個.py文件就被稱為一個模塊,通過結合包的使用來組織文件

  封裝思路: 函數 => 類 => 模塊 => 包 => 項目

  優點:

  a.提高了代碼的可維護性

  b.提高了代碼的復用性【當一個模塊被完成之后,可以在多個文件中使用】

  c.引用其他的模塊【第三方模塊】

  d.避免函數名和變量的命名沖突

  2 os模塊

  提供有關于操作系統的函數,處理文件或者文件夾

  **注意:**若path不是絕對路徑,則認為是在當前py文件的地址執行相關操作

  # os: operation system 操作系統

  import os

  print(os.name)

  # nt--->windows

  # posix --->Linux, MacOS

  print(os.environ)

  print(os.environ.get('PATH'))

  # . 表示當前目錄

  # .. 表示上級目錄

  print(os.curdir) # . 當前目錄

  # 當前路徑

  # 相對路徑:從當前目錄(或者項目目錄)開始的路徑

  # 絕對路徑:從磁盤根目錄開始的完整路徑

  print(os.getcwd()) # C:\Users\75171\Desktop\Python2004\day11\code

  # 后面的必須掌握

  # listdir():獲取指定路徑下的所有文件或者目錄的名字,以列表形式展示

  print(os.listdir(r'path'))

  # mkdir():新建目錄

  # os.mkdir('hello')

  # os.makedirs('a/b/c') # 可以遞歸創建目錄

  # 刪除目錄

  # os.rmdir('hello')

  # os.rmdir('a') # OSError: [WinError 145] 目錄不是空的。: 'a'

  # 刪除文件

  # os.remove('a.txt')

  # 重命名

  # os.rename('a','aaa')

  # os.rename(r'aaa/b/a.txt','aaa/b/bbb.txt')

  # 文件屬性

  print(os.stat('aaa/b/bbb.txt'))

  # os.path

  # os.path.join():將多個路徑拼接

  print(os.path.join(r'path2','name')) # 一般兩個,也可以三個

  # os.path.split():拆分

  print(os.path.split(r'C:\Users\75171\Desktop\Python2004\day11\code\aaa'))

  # 'C:\Users\75171\Desktop\Python2004\day11\code' 'aaa'

  # os.path.splitext():將文件的名稱和擴展名拆分

  print(os.path.splitext('ccc.py')) # ('ccc', '.py')

  # os.path.getsize():獲取文件大小

  print(os.path.getsize('path')) # 1639

  # os.path.abspath(): 獲取指定文件的絕對路徑

  print(os.path.abspath('bbb.txt')) # C:\Users\75171\Desktop\Python2004\day11\code\bbb.txt

  # __file__:當前文件名

  print(os.path.abspath(__file__)) # C:\Users\75171\Desktop\Python2004\day11\code\os.py

  file_path = r'C:\Users\75171\Desktop\Python2004\day11\code\os.py'

  dir_path = r'C:\Users\75171\Desktop\Python2004\day11\code'

  # os.path.exist() :判斷文件或目錄是否存在

  print(os.path.exists(file_path))

  print(os.path.exists(dir_path))

  # os.path.isfile():是否為文件

  print(os.path.isfile(file_path)) # True

  print(os.path.isfile(dir_path)) # False

  # os.path.isdir():是否為文件

  print(os.path.isdir(file_path)) # False

  print(os.path.isdir(dir_path)) # True

  # os.path.dirname():父目錄/上一級目錄

  print(os.path.dirname(dir_path)) # C:\Users\75171\Desktop\Python2004\day11

  # os.path.basename():文件名

  print(os.path.basename(file_path)) # os.py

  3.自定義模塊【掌握】

  3.1自定義import模塊

  #1.格式:import 包1.包2.模塊的名稱

  #注意1:通過點語法區分包的層級關系

  #引入模塊

  #注意2:如果要同時導入多個模塊,有兩種方式

  #方式一

  """

  import os

  import datetime

  import math

  """

  #方式二

  import os,math,datetime

  #注意3:當導入自定義模塊的時候,需要注意包的存在

  #注意5:當通過import將模塊導入的時候,將模塊對應的文件整個加載了一遍

  import ccc.module

  import moduleTextDemo01

  print("***************")

  #注意4:當模塊有包的層級關系時,需要調用其中函數的時候,需要指明函數的路徑

  ccc.module.test() #os.path.isdir()

  moduleTextDemo01.fun1()

  moduleTextDemo01.fun2()

  moduleTextDemo01.fun3()

  print(moduleTextDemo01.num)

  3.2自定義from-import模塊

  #form 模塊名 import 函數名1/類名,函數名2.。。。

  #import moduleTextDemo01

  from moduleTextDemo01 import fun1,fun2,fun3

  #注意:采用了form。。。import的方式導入指定的函數之后,可以直接調用函數

  fun1()  鄭州去胎記醫院 http://www.zykdbhk.com/

  fun2()

  fun3()

  #好處:進行局部的導入,避免內存空間的浪費

  #注意:當前文件中如果存在和模塊中同名的函數的時候,當前文件中的函數仍然會將模塊中的函數給覆蓋掉

  def fun1():

  print("hello")

  fun1()

  3.3自定義from-import*模塊

  #from 。。。。 import * *代表全部

  """

  下面三種導入方式完全等價:將moduleTextDemo01模塊中的所有的內容全部導入

  from moduleTextDemo01 import *

  import moduleTextDemo01

  from moduleTextDemo01 import fun1,fun2,fun3

  """

  from moduleTextDemo01 import *

  fun1()

  總結:在python中,每個py文件其實都是一個模塊,如果跨模塊調用函數,則采用導入的方式

  將不同的功能進行劃分,調用函數的時候相對比較方便的

  4.__name__屬性和dir函數

  __name__的作用:如果不想讓模塊中的某些代碼執行,可以通過屬性僅僅調用程序中的一部分功能

  【寫在if判斷中的代碼只有當前模塊被執行的時候才會被執行,檢測到是其他的文件在使用當前的模塊,則if語句中的代碼不會被執行】

  def fun1():

  print("aaa")

  def fun2():

  print("bbb")

  def fun3():

  print("ccc")

  #作用:寫在下面判斷中的代碼,只有當前模塊運行的時候才會被執行【起到屏蔽的作用】,其他文件想import此文件,以下函數不會被執行

  if __name__ == "__main__":

  fun1()

  fun2()

  fun3()

  dir:獲取指定模塊里面的所有的內容

  dir(模塊名稱) 返回的是一個列表

  print(dir(math))

  print(dir(moduleTextDemo01))

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼木县| 黑河市| 西乌珠穆沁旗| 怀化市| 台中县| 湖口县| 娄底市| 马山县| 新沂市| 海城市| 柘城县| 乐都县| 钦州市| 阿克陶县| 噶尔县| 思南县| 龙川县| 开江县| 广丰县| 通江县| 中阳县| 云安县| 美姑县| 浦北县| 灵丘县| 舟山市| 萝北县| 广平县| 电白县| 陵川县| 蒙阴县| 延长县| 启东市| 普兰店市| 牟定县| 新竹市| 麻阳| 广汉市| 渝北区| 建昌县| 清原|