python的getattr函數
❶ python的函數都有哪些
【常見的內置函數】
1、enumerate(iterable,start=0)
是python的內置函數,是枚舉、列舉的意思,對於一個可迭代的(iterable)/可遍歷的對象(如列表、字元串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值。
2、zip(*iterables,strict=False)
用於將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用*號操作符,可以將元組解壓為列表。
3、filter(function,iterable)
filter是將一個序列進行過濾,返回迭代器的對象,去除不滿足條件的序列。
4、isinstance(object,classinfo)
是用來判斷某一個變數或者是對象是不是屬於某種類型的一個函數,如果參數object是classinfo的實例,或者object是classinfo類的子類的一個實例,
返回True。如果object不是一個給定類型的的對象, 則返回結果總是False
5、eval(expression[,globals[,locals]])
用來將字元串str當成有效的表達式來求值並返回計算結果,表達式解析參數expression並作為Python表達式進行求值(從技術上說是一個條件列表),採用globals和locals字典作為全局和局部命名空間。
【常用的句式】
1、format字元串格式化
format把字元串當成一個模板,通過傳入的參數進行格式化,非常實用且強大。
2、連接字元串
常使用+連接兩個字元串。
3、if...else條件語句
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。其中if...else語句用來執行需要判斷的情形。
4、for...in、while循環語句
循環語句就是遍歷一個序列,循環去執行某個操作,Python中的循環語句有for和while。
5、import導入其他腳本的功能
有時需要使用另一個python文件中的腳本,這其實很簡單,就像使用import關鍵字導入任何模塊一樣。
❷ Python反射介紹
反射機制是面向對象編程語言中比較重要的功能,可以動態獲取對象信息以及動態調用對象,Python作為一門動態編程語言,當然也有反射機制,本文介紹Python反射函數使用方法。
在程序運行時可以獲取對象類型定義信息,例如,Python中的type(obj)將返回obj對象的類型,這種獲取對象的type、attribute或者method的能力稱為反射。通過反射機制,可以用來檢查對象里的某個方法,或某個變數是否存在。也就是可以 通過字元串映射對象的方法或者屬性 。
Python反射常用的內置函數
先創建一個類:
利用反射的能力,我們可以通過屬性字典 __dict__ 來訪問對象的屬性:
執行輸出:
接下來測試一下其他反射函數:
Out:
Out:
Out:
Out:
Out:
Out:
下面介紹兩種Python反射的應用場景。
從前面舉的例子中,我們了解到可以通過 字元串 來獲取對象的屬性( getattr() ),這是非常有用的一個功能。比如,一個類中有很多方法,它們提供不同的服務,通過輸入的參數來判斷執行某個方法,一般的使用如下寫法:
如果函數比較少這樣寫沒有太大問題,如果有很多,這樣寫就比較復雜了,需要寫大量else語句,可以使用反射機制來寫:
這樣是不是簡潔了很多,上面的例子中,通過反射,將字元串變成了函數,實現了對對象方法的動態調用。
可以通過setattr()方法進行動態屬性設置,在使用scapy庫構造報文時,我們需要設置某些報文欄位,然而網路協議的報文欄位很多,在需要設置大量欄位時,一個一個的賦值就很麻煩:
可以使用setattr()方法來賦值:
--THE END--
❸ python常用函數
1、complex()
返回一個形如a+bj的復數,傳入參數分為三種情況:
參數為空時,返回0j;參數為字元串時,將字元串表達式解釋為復數形式並返回;參數為兩個整數(a,b)時,返回a+bj;參數只有一個整數 a 時,虛部 b 默認為0,函數返回a+0j。
4、enumerate(iterable,start=0)
iterable -- 一個可迭代對象,列表、元組序列等;start -- 計數索引值,默認初始為0『該函數返回枚舉對象是個迭代器,利用 next() 方法依次返回元素值,每個元素以元組形式存在,包含一個計數元素(起始為 start )和 iterable 中對應的元素值。