裝飾器 decorators(專業提高篇)
什麼是裝飾器
1.裝飾器是乙個函式,主要作用是用來包裝另乙個函式或
類(後面才講)
2.包裝的目的是在不改變原函式名(或類名) 的情況下改變
或新增被包裝物件的行為
函式裝飾器
是指裝飾器是乙個函式,傳入的是乙個函式,返回的也是乙個
函式語法:
def 裝飾器函式名(引數):
語句塊return 函式物件
@裝飾器函式名《換行》
def 函式名(形參列表):
語句塊
函式內第一次末賦值給任何變數的字串是此函式的文件字串
語法: def 函式名(引數列表):
'函式的文件字串'
語句塊說明: 文件字串通常用來說明本函式的功能的使用方法
函式的文件字串繫結在函式物件的 __doc__ 屬性上
***函式的 __doc__ 屬性***
__doc__屬性用於繫結函式的文件字串
函式定義語句的完整的語法:
[@裝飾器名1]
[@裝飾器名2]
...def 函式名([位置形參], [*元組形參], [命名關鍵字形參]
,[**字典形參]):
'文件字串'
語句塊
什麼是模組
模組是乙個包含有一系列數的資料,函式,類等組成的程式組
模組是乙個檔案,模組檔案通常以.py結尾
作用: 1. 讓一些相關的資料,函式,類等有邏輯的組織在一起,使
邏輯結束更加清查晰
2. 模組中的資料,函式和類等可提供給其它模組或程式呼叫
模組的分類:
1. 內建模組,在解析器的內部可以直接使用
2. 標準庫模組,安裝python時已安裝,且可直接使用
3. 第三方模組(通常為開源), 需要自己安裝
$ pip3 install 模組名
4. 使用者自己編寫的模組(可以作為其它人的第三方模組)
import 語句
語法: import 模組名1 [as 模組新名1],模組名2 [as 新名2]
作用: 將某模組整體匯入到當前模組
示例:
import math
import sys, os
用法:
模組名.屬性名
math.factorial(5)
print(math.pi)
dir(obj) 函式,返回模組的所有屬性的字串列表
help(obj) 函式,可以檢視模組相關的文件字串
語法:
from 模組名 import 模組屬性名1 [as 屬性新名1], \
模組屬性名2 [as 屬性新名2], ....
作用: 將某模組內的乙個或多個屬性匯入到當前模組的作用域
示例:
from math import sin,cos,tan
from math import pi
from math import factorial as fac
print(sin(pi/2)*fac(5)
from import * 語句
語法: from 模組名 import *
作用: 將某模組的所有屬性匯入到當前模組
示例:
from math import *
print(factorial(5))
print(sin(pi / 2))
dir函式的作用:
如果沒有引數呼叫,則返回當前作用域內所有變數的列表
如果給定乙個物件作為引數,則返回這個物件所有變數的列表
對於乙個模組,返回這個模組的全部變數(屬性)
對於乙個類物件,返回類物件的所有變數,並遞迴基類對
象的所有變數
對於其它物件,返回所有變數,類變數和基類變數
Python 文件化字串
python有乙個很奇妙的特性,稱為 文件字串 它通常被簡稱為 docstrings docstrings是乙個重要的工具,由於它幫助你的程式文件更加簡單易懂,你應該盡量使用它。你甚至可以在程式執行的時候,從函式恢復文件字串!usr bin python filename func doc.py d...
python之文件字串
程式的可讀性最重要。一般建議在函式體開始的部分新增注釋。通過呼叫help 函式名.doc 可以檢視注釋。測試文件字串基本用法 defprintmax a,b 用於比較兩個數的大小,列印較大的值 if a b print a,是較小值 if aprint b,較大值 printmax 11,22 he...
文件字串
文件字串 python中我們可以定義很多函式,函式越多,對於開發人員來說,就會亂。有兩種方法解決這個問題,第一種是在開發的時候為每個函式寫乙個文件進行說明,第二種是python種所特有的特性,就是在每個函式開頭的地方,加上一行說明性文字,這行說明性文字稱為文件字串。文件字串 def d i,j 這個...