同名函數(shù)python 同名函數(shù)的轉化

python函數(shù)修飾符@的使用

python函數(shù)修飾符@ 修飾符 ‘@’符號用作函數(shù)修飾符是python2.4新增加的功能,修飾符必須出現(xiàn)在函數(shù)定義前一行,不允許和函數(shù)定義在同一行。也就是說@A def f(): 是非法的。 只可以在模塊或類定義層內(nèi)對函數(shù)進行修飾,不允許修修飾一個類。一個修飾符就是一個函數(shù),它將被修飾的函數(shù)做為參數(shù),并返回修飾后的同名函數(shù)或其它可調用的東西。 本質上講,裝飾符@類似于 回調函數(shù) ,把其它的函數(shù)(暫且稱為目的參數(shù),后面緊接著的函數(shù))作為自己的入?yún)?,在目的函?shù)執(zhí)行前,執(zhí)行一些自己的操作, 比如:計數(shù)、打印一些提示信息等,然后返回目的函數(shù)。下面列舉一個簡單的例子。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的柞水網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

創(chuàng)建函數(shù)修飾符的規(guī)則:

(1)修飾符是一個函數(shù)

(2)修飾符取被修飾函數(shù)為參數(shù)

(3)修飾符返回一個新函數(shù)

(4)修飾符維護被維護函數(shù)的簽名

例子1: 被修飾函數(shù)不帶參數(shù)

運行結果:

例子2: 使用functools模塊提供的修改函數(shù)屬性的方法wraps

運行結果:

可見test1的函數(shù)名稱變了,如果某些代碼用到就會出問題,可以使用functools模塊提供的修改函數(shù)屬性的方法wraps

運行結果:

例子3: 被修飾函數(shù)帶參數(shù)

運行結果:

例子4: 修飾符帶參數(shù) ,需要比上面例子多一層包裝

運行結果:

如何在Python中調用父類的同名方法

你好,請看下面的例子和說明:python中類的初始化方法是__init__(),因此父類子類的初始化方法都是這個,如果子類不實現(xiàn)這個函數(shù),初始化時調用父類的初始化函數(shù),如果子類實現(xiàn)這個函數(shù),就覆蓋了父類的這個函數(shù),既然繼承父類,就要在這個函數(shù)里顯式調用一下父類的__init__(),這跟C++,jAVA不一樣,他們是自動調用父類初始化函數(shù)的。調用父類函數(shù)有以下方法:class A:def method(self, arg):pass class B(A):def method(self, arg):# A.method(self,arg) # 1# super(B, self).method(arg) #2super().method(arg) #31.直接寫類名調用2.用super(type,obj).method(arg)方法調用。3.在類定義中調用本類的父類方法,可以直接super().method(arg).在代碼中調用對象的父類的方法的示例:ob = B()super(B,ob).method(arg) #調用class B的父類class A的method。初始化中調用父類初始化方法示例:class B(A):

像Excel一樣使用Python(一)

在進行數(shù)據(jù)處理時,如果數(shù)據(jù)簡單,數(shù)量不多,excel是大家的首選。但是當數(shù)據(jù)眾多,類型復雜,需要靈活地顯示切片、進行索引、以及排序時,python會更加方便。借助python中的numpy和pandas庫,它能快速完成各種任務,包括數(shù)據(jù)的創(chuàng)建、檢查、清洗、預處理、提取、篩選、匯總、統(tǒng)計等。接下來幾篇文章,將以excel為參照,介紹python中數(shù)據(jù)的處理。

提到pandas,那就不得不提兩類重要的數(shù)據(jù)結構,Series和DataFrame,這兩類數(shù)據(jù)結構都是建立在numpy的數(shù)組array基礎上。與array相比,Series是一個一維的數(shù)據(jù)集,但是每個數(shù)據(jù)元素都帶有一個索引,有點類似于字典。而DataFrame在數(shù)組的基礎上,增加了行索引和列索引,類似于Series的字典,或者說是一個列表集。

所以在數(shù)據(jù)處理前,要安裝好numpy , pandas。接下來就看看如何完成一套完整的數(shù)據(jù)操作。

創(chuàng)建數(shù)據(jù)表的方法分兩種,分別是從外部導入數(shù)據(jù),以及直接寫入數(shù)據(jù)。

在python中,也可外部導入xlsx格式文件,使用read_excel()函數(shù):

import pandas as pd

from pandas import DataFrame,Series

data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))

print data

輸出:

Gene Size Function

0 arx1 411 NaN

1 arx2 550 monooxygenase

2 arx3 405 aminotransferase

……

即:調用pandas中read_excel屬性,來讀取文件test.xlsx,并轉換成DataFrame格式,賦給變量data。在每一行后,自動分了一個索引值。除了excel,還支持以下格式文件的導入和寫入:

Python寫入的方法有很多,但還是不如excel方便。常用的例如使用相等長度的字典或numpy數(shù)組來創(chuàng)建:

data1 = DataFrame(

{'Gene':['arx1','arx2','arx3'],

'Size':[411,550,405],

'Func':[np.NaN,'monooxygenase','aminotransferase ']})

print data1

輸出

Func Gene Size

0 NaN arx1 411

1 monooxyg arx2 550

2 amino arx3 405

分配一個行索引后,自動排序并輸出。

在python中,可以使用info()函數(shù)查看整個數(shù)據(jù)的詳細信息。

print data.info()

輸出

RangeIndex: 7 entries, 0 to 6

Data columns (total 3 columns):

Gene 7 non-null object

Size 7 non-null int64

Function 5 non-null object

dtypes: int64(1), object(2)

memory usage: 240.0+ bytes

None

此外,還可以通過shape, column, index, values, dtypes等函數(shù)來查看數(shù)據(jù)維度、行列組成、所有的值、 數(shù)據(jù)類型:

print data1.shape

print data1.index

print data1.columns

print data1.dtypes

輸出

(3, 3)

RangeIndex(start=0, stop=3, step=1)

Index([u'Func', u'Gene', u'Size'], dtype='object')

Func object

Gene object

Size int64

dtype: object

在excel中可以按“F5”,在“定位條件”中選擇“空值”,選中后,輸入替換信息,再按“Ctrl+Enter”即可完成替換。

在python中,使用函數(shù) isnull 和 notnull 來檢測數(shù)據(jù)丟失, 包含空值返回True,不包含則返回False。

pd.isnull(data1)

pd.notnull(data1)

也可以使用函數(shù)的實例方法,以及加入?yún)?shù),對某一列進行檢查:

print data1['Func'].isnull()

輸出

Func Gene Size

0 True False False

1 False False False

2 False False False

再使用fillna對空值進行填充:

data.fillna(value=0)

#用0來填充空值

data['Size'].fillna(data1['Size'].mean())

#用data1中Size列的平均值來填充空值

data['Func']=data['Func'].map(str.strip)

#清理Func列中存在的空格

Excel中可以按“Ctrl+F”,可調出替換對話框,替換相應數(shù)據(jù)。

Python中,使用replace函數(shù)替換:

data['Func'].replace('monooxygenase', 'oxidase')

將Func列中的'monooxygenase'替換成'oxidase'。

Excel中,通過“數(shù)據(jù)-篩選-高級”可以選擇性地看某一列的唯一值。

Python中,使用unique函數(shù)查看:

print data['Func'].unique()

輸出

[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']

Excel中,通過UPPER、LOWER、PROPER等函數(shù)來變成大寫、小寫、首字母大寫。

Python中也有同名函數(shù):

data1['Gene'].str.lower()

Excel中可以通過“數(shù)據(jù)-刪除重復項”來去除重復值。

Python中,可以通過drop_duplicates函數(shù)刪除重復值:

print data['Func'].drop_duplicates()

輸出

0 NaN

1 monooxygenase

2 aminotransferase

3 methyltransferase

Name: Func, dtype: object

還可以設置“ keep=’last’ ”參數(shù),后出現(xiàn)的被保留,先出現(xiàn)的被刪除:

print data['Func'].drop_duplicates(keep='last')

輸出

2 aminotransferase

3 methyltransferase

6 monooxygenase

8 NaN

Name: Func, dtype: object

內(nèi)容參考:

Python For Data Analysis

藍鯨網(wǎng)站分析博客,作者藍鯨(王彥平)

網(wǎng)站題目:同名函數(shù)python 同名函數(shù)的轉化
文章路徑:http://muchs.cn/article44/hjdjee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、響應式網(wǎng)站、網(wǎng)站設計公司、動態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司