亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python代碼優化案例分析

標簽:
Python

第一版举例:

def displayNumType(num):
    print num,"is",
    if type(num)==type(0):
        print 'an interger'
    elif type(num)==type(0L):
        print 'a long'
    elif type(num)==type(0.0):
        print 'a float'
    elif type(num)==type(0+0j):
        print 'a complex number'
    else:
        print 'not a number at all!!'

最终版举例:

def displayNumType(num):
    print num,'is',
    if isinstance(num,(int,long,float,complex)):
        print 'a  number of type:',type(num).__name__
    else:
        print 'not a number at all!!'

优化思路:

1、减少函数调用的次数

在第一版代码中,每次判断会调用两次type()。

  • 优化方式:

import types
if type(num)==types.IntType...

2、对象值比较 VS 对象身份比较

type(0),type(42)等都是同一个对象“<type 'Int'>”,没有必要进行值得比较。因为每一个类型只有一个类型对象。

  • 优化方式:

if type(num) is types.IntType...  ##or type(0)

3、减少查询次数

为了得到整数的对象类型,解释器不得不首先查找types这个模块的名字,然后在该模块的字典中查找IntType。

通过使用from-import,可以减少一次查询。

  • 优化方式:

from types import IntType
if type(num) is IntType

4、惯例和代码风格

isinstance()函数让if语句更方便,并具有更好的可读性。

  • 优化方式:

if isinstance(num,int)...

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消