嘗試將python的內(nèi)置函數(shù)進(jìn)行解釋及分類
| 內(nèi)置函數(shù)分類 | ||
|---|---|---|
| 反射操作 | 在運(yùn)行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性 | |
__import__() |
導(dǎo)入模塊 |
__import__('sys').path |
isinstance() |
判斷對象是否是某個類的實(shí)例 |
isinstance('abc', str) = True |
issubclass() |
判斷對象是否是某個類的子類的實(shí)例 |
issubclass(str, str) = True |
hasattr() |
判斷對象是否含有某個屬性 |
hasattr(str, 'join') # ''.join([1, 2]) |
getattr() |
獲取對象的某個屬性 |
getattr(str, 'join') |
setattr() |
設(shè)置對象的某個屬性 |
setattr(p, 'name', 'xiaoming') |
delattr() |
刪除對象的某個屬性 |
delattr(p, 'name') |
callable() |
檢測對象是否可被調(diào)用 |
callable(str) = True |
| 變量操作 | ||
globals() |
回當(dāng)前作用域內(nèi)的全局變量和其值組成的字典 |
globals() |
locals() |
返回當(dāng)前作用域內(nèi)的局部變量和其值組成的字典 |
locals() |
| 交互操作 | ||
print() |
向標(biāo)準(zhǔn)輸出對象打印輸出 |
print('123') |
input() |
讀取用戶輸入值 |
p = input() |
| 文件操作 | ||
open() |
打開某個文件 |
with open('/test.txt', 'rb') as f |
| 編譯執(zhí)行 | ||
compile() |
將字符串編譯為代碼或者AST對象,使之能夠通過exec語句來執(zhí)行或者eval進(jìn)行求值 |
compile('1+2', '', 'eval') |
eval() |
執(zhí)行動態(tài)表達(dá)式求值 |
eval('1+2+3+4') = 10 |
exec() |
執(zhí)行動態(tài)語句塊 |
exec('p=2+3') print(p) # 5 |
repr() |
返回一個對象的字符串表現(xiàn)形式(給解釋器) |
repr(str) |
| 裝飾器 | ||
property() |
標(biāo)示屬性的裝飾器 |
@property |
classmethod() |
類方法的裝飾器 |
@classmethod |
staticmethod() |
靜態(tài)方法的裝飾器 |
@staticmethod |
| 序列操作 | ||
all() |
判斷對象內(nèi)部所有元素是否全部不為False |
all([1, 2, 3, 0]) = False |
any() |
判斷對象內(nèi)部是否有元素不為False |
any([0, 0, 0, 0, 1]) = True |
filter() |
用一個函數(shù)作用于可迭代對象的每一個元素,篩選出一個新的迭代器 |
list(filter(lambda p:p <3, [1, 2, 3])) = [1, 2] |
next() |
返回可迭代對象的下一個元素,沒有會報(bào)錯 |
next(iter([1, 2, 3])) = 1 |
map() |
用一個函數(shù)作用于可迭代對象的每一個元素,生成一個新的迭代器 |
list(map(lambda p:p**2, [1, 2, 3])) = [1, 4, 9] |
sorted() |
數(shù)組排序,可傳入一個key函數(shù)作為判斷 |
sorted(['2', '1', '3'], key=int, reverse=True) = ['3', '2', '1'] |
reversed() |
倒序 |
list(reversed(['2', '1', '3'])) = ['3', '1', '2'] |
zip() |
元組操作 |
list(zip([1, 2, 3], [1, 2, 3])) = [(1, 1), (2, 2), (3, 3)] |
| 對象操作 | ||
help() |
獲取對象的幫助信息 |
help(str) |
id() |
獲取對象的唯一標(biāo)識符 |
id('123') |
dir() |
返回對象的或者當(dāng)前作用域內(nèi)的屬性列表 |
dir(str) |
hash() |
獲取對象的哈希值 |
hash('123') |
vars() |
返回當(dāng)前作用域內(nèi)的局部變量和其值組成的字典,或者返回對象的屬性列表 |
vars() |
ascii() |
返回對象的可打印表字符串表現(xiàn)方式 |
ascii('簡書') = '\u7b80\u4e66' |
type() |
返回對象的類型,或者根據(jù)傳入的參數(shù)創(chuàng)建一個新的類型 |
Person = type('Person', (), {'name':'python ~'}) p = Person() p.name |
len() |
獲取對象的長度 |
len('123') = 3 |
format() |
格式化顯示值 |
format(123, 'b') = 1111011 |
| 數(shù)值計(jì)算 | ||
abs() |
絕對值函數(shù) |
abs(-1) = 1 |
divmod() |
除余函數(shù) |
divmod(11,3) = 3(整除數(shù)),2(余數(shù)) |
pow() |
函數(shù) |
pow(2, 3) = 2**3 = 8 |
max() |
最大值函數(shù) |
max([(1, 2), (2, 3), (3, 1)], key=lambda p:p[1]) = (2,3) |
min() |
最小值函數(shù) |
min([(1, 2), (2, 3), (3, 1)], key=lambda p:p[1]) = (3,1) |
sum() |
求和函數(shù) |
sum([1, 2, 3]) = 6 |
round() |
四舍五入函數(shù) |
round(1.12345, 3) = 1.123 # 第二個參數(shù)為位數(shù)約束 |
| 類型轉(zhuǎn)換 | ||
bool() |
轉(zhuǎn)換為bool |
bool('') = bool(0) = bool(False) = False |
bytearray() |
轉(zhuǎn)換為字節(jié)數(shù)組 |
bytearray('字節(jié)', encoding='utf8') |
bytes() |
轉(zhuǎn)換為不可變字節(jié)數(shù)組 |
bytes('字節(jié)', encoding='utf8') |
float() |
轉(zhuǎn)換為float |
float(1) = 1.o |
int() |
字符串或者浮點(diǎn)數(shù)轉(zhuǎn)換為int |
int(10.0) = int('10') = 10 |
hex() |
由其他進(jìn)制轉(zhuǎn)換為十六進(jìn)制 |
hex(10) = oxa |
oct() |
由其他進(jìn)制轉(zhuǎn)換為八進(jìn)制 |
oct(16) = 0o20 |
bin() |
由其他進(jìn)制轉(zhuǎn)換為二進(jìn)制 |
bin(8) = 0b1000 |
complex() |
由其他進(jìn)制或字符串轉(zhuǎn)換為復(fù)數(shù) |
complex('1+2j') = complex(1+2j) = (1+2j) |
chr() |
數(shù)字轉(zhuǎn)換為unicode |
chr(48) = 0 |
ord() |
unicode字符串轉(zhuǎn)換為數(shù)字 |
ord('0') = 48 |
str() |
創(chuàng)建一個新的str對象 |
str(123) = '123' |
list() |
創(chuàng)建一個新的list對象 |
list([1, 2, 3]) = [1, 2, 3] |
object() |
創(chuàng)建一個新的object對象 |
obj = object() |
tuple() |
創(chuàng)建一個新的tuple對象 |
tuple([1, 2, 3] = (1,2, 3) |
set() |
創(chuàng)建一個新的set對象 |
set(range(3)) = {0, 1, 2} |
memoryview() |
創(chuàng)建一個新的內(nèi)存查看對象 |
memoryview(b'1234')[0] = 49 傳入?yún)?shù)必須為byte-like類型,返回為unicode迭代器 |
dict() |
創(chuàng)建一個新的dict對象 |
dict({'0':0}) = {'0': 0} |
frozenset() |
創(chuàng)建一個新的不可變集合 |
frozenset([1, 2, 3]) = frozenset({1, 2, 3}) |
enumerate() |
創(chuàng)建一個枚舉對象 |
enumerate([1, 2, 3, 4]) 迭代器返回為(index, item) |
range() |
創(chuàng)建一個新的range對象 |
range(start, stop, step) |
iter() |
創(chuàng)建一個新的可迭代對象 |
iter([1, 2, 3]).__next__() = 1 |
slice() |
創(chuàng)建一個新的切片對象 |
list[slice(start, stop, step)] |
super() |
創(chuàng)建一個新的子類和父類關(guān)系的代理對象 |
super().__init__() |