這里的QuickSort.count叫做"函數(shù)屬性function attribute",
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為恭城等服務(wù)建站,恭城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為恭城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
python等動態(tài)類型語言所具有的"函數(shù)同時是頭等對象"的功能.
即代碼可以往函數(shù)對象上靈活地添加某屬性。
def?f():???
print(f.act)
f.act=123?#定義和添加一個函數(shù)對象的屬性-函數(shù)屬性
f()?#打印123
之前的快速排序用了一個count屬性在記錄排序算法的比較次數(shù)。屬于調(diào)試顯示,不是排序的核心算法..
type--類,object-or-type--類,一般是self
運(yùn)行發(fā)現(xiàn):super().add(x) 與A.add(self,x)執(zhí)行結(jié)果一致;但涉及多繼承,發(fā)現(xiàn)super()只調(diào)用一次
在super機(jī)制里可以保證公共父類僅被執(zhí)行一次,至于執(zhí)行的順序,是按照MRO(Method Resolution Order):方法解析順序 進(jìn)行的
super()可以調(diào)用父類中的任何方法,超(父類的父類)類的任何方法;可重寫父類同名的 init 函數(shù),及其他方法
在任何時候繼承類和重寫方法的,我們應(yīng)當(dāng)用到args, kwargs將接收到的位置參數(shù)和鍵值參數(shù)給父類方法
比如,sys模塊: import sys
sys.argv 是一個 list,包含所有的命令行參數(shù).
sys.stdout sys.stdin sys.stderr 分別表示標(biāo)準(zhǔn)輸入輸出,錯誤輸出的文件對象.
sys.stdin.readline() 從標(biāo)準(zhǔn)輸入讀一行 sys.stdout.write("a") 屏幕輸出a
sys.exit(exit_code) 退出程序
sys.modules 是一個dictionary,表示系統(tǒng)中所有可用的module
sys.platform 得到運(yùn)行的操作系統(tǒng)環(huán)境
sys.path 是一個list,指明所有查找module,package的路徑.
操作系統(tǒng)相關(guān)的調(diào)用和操作: import os
os.environ 一個dictionary 包含環(huán)境變量的映射關(guān)系
os.environ["HOME"] 可以得到環(huán)境變量HOME的值
os.chdir(dir) 改變當(dāng)前目錄 os.chdir('d:\\outlook')
注意windows下用到轉(zhuǎn)義
os.getcwd() 得到當(dāng)前目錄
os.getegid() 得到有效組id os.getgid() 得到組id
os.getuid() 得到用戶id os.geteuid() 得到有效用戶id
os.setegid os.setegid() os.seteuid() os.setuid()
os.getgruops() 得到用戶組名稱列表
os.getlogin() 得到用戶登錄名稱
os.getenv 得到環(huán)境變量
os.putenv 設(shè)置環(huán)境變量
os.umask 設(shè)置umask
os.system(cmd) 利用系統(tǒng)調(diào)用,運(yùn)行cmd命令
內(nèi)置模塊(不用import就可以直接使用)常用內(nèi)置函數(shù):
help(obj) 在線幫助, obj可是任何類型
callable(obj) 查看一個obj是不是可以像函數(shù)一樣調(diào)用
repr(obj) 得到obj的表示字符串,可以利用這個字符串eval重建該對象的一個拷貝
eval_r(str) 表示合法的python表達(dá)式,返回這個表達(dá)式
dir(obj) 查看obj的name space中可見的name
hasattr(obj,name) 查看一個obj的name space中是否有name
getattr(obj,name) 得到一個obj的name space中的一個name
setattr(obj,name,value) 為一個obj的name
space中的一個name指向vale這個object
delattr(obj,name) 從obj的name space中刪除一個name
vars(obj) 返回一個object的name space。用dictionary表示
locals() 返回一個局部name space,用dictionary表示
globals() 返回一個全局name space,用dictionary表示
type(obj) 查看一個obj的類型
isinstance(obj,cls) 查看obj是不是cls的instance
issubclass(subcls,supcls) 查看subcls是不是supcls的子類
################## 類型轉(zhuǎn)換 ##################
chr(i) 把一個ASCII數(shù)值,變成字符
ord(i) 把一個字符或者unicode字符,變成ASCII數(shù)值
oct(x) 把整數(shù)x變成八進(jìn)制表示的字符串
hex(x) 把整數(shù)x變成十六進(jìn)制表示的字符串
str(obj) 得到obj的字符串描述
list(seq) 把一個sequence轉(zhuǎn)換成一個list
tuple(seq) 把一個sequence轉(zhuǎn)換成一個tuple
dict(),dict(list) 轉(zhuǎn)換成一個dictionary
int(x) 轉(zhuǎn)換成一個integer
long(x) 轉(zhuǎn)換成一個long interger
float(x) 轉(zhuǎn)換成一個浮點(diǎn)數(shù)
complex(x) 轉(zhuǎn)換成復(fù)數(shù)
max(...) 求最大值
min(...) 求最小值
1、 定義一個特殊的 __slots__ 變量,來限制該class實(shí)例能添加的屬性
2、 內(nèi)置的 @property(關(guān)鍵字) 裝飾器就是負(fù)責(zé)把一個方法變成屬性調(diào)用的。@property.setter(這里的property是類里面的屬性名)負(fù)責(zé)把一個setter方法變成屬性賦值。
3、 __str__(),__repr__(),__iter__(),__next__(),__getitem__(),__setitem__(),__delitem__(),__getattr__(),__call__()
def func(ls):
avg = sum(ls) / len(ls)
return [i-avg for i in ls]
abs()
返回一個數(shù)字的絕對值,它的參數(shù)可以是整數(shù)或者浮點(diǎn)數(shù)。舉個例子:
all()
參數(shù)為一個可迭代對象,如果該可迭代對象所有元素的真值都為True(或者可迭代對象為空),則返回True。它等價(jià)于:
舉個例子:
any()
和all()函數(shù)相對應(yīng),如可迭代對象所有元素中只要有一個元素真值為True,那么就返回True,如果這個可迭代對象是空的,則返回True。它等價(jià)于:
舉個例子:
bin()
將整數(shù)轉(zhuǎn)換為前綴為"0b"的二進(jìn)制字符串,舉個例子:
bool()
這個函數(shù)返回一個布爾值,True或者False。常見的布爾值為False的值有:
其他大部分值的布爾值都為True。對于我們自定義的類,如果未定義__len__()特殊方法和__bool__特殊方法,那此類的對象的布爾值總為True:
如果定義了__len__(),__bool__(),則此類的對象的布爾值可能為False(取決于你如何定義這兩個方法):
callable()
callable()函數(shù)判斷參數(shù)是否可調(diào)用,如果可調(diào)用,則返回True,否則會返回False。舉個例子:
自定義的類的對象,一般情況下是不能調(diào)用的:
但可以通過定義__call__()方法來使對象變得可以調(diào)用:
關(guān)于Python的基礎(chǔ)問題可以看下這個網(wǎng)頁的視頻教程,Python基礎(chǔ)常見問題,希望我的回答能幫到你。
當(dāng)前文章:python中函數(shù)案列 python取一列怎么寫代碼
文章來源:http://www.chinadenli.net/article36/doocjsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、App開發(fā)、全網(wǎng)營銷推廣、小程序開發(fā)、建站公司、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)