Python 代码优化基础——判断对象类型


# -*- coding: utf-8 -*-
#


# def displayNumType(num):
#     print num, 'is',
#     if type(num) == type(0):
#         print 'an integer'
#     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!!'
# 
# 
# #减少函数调用的次数
# #代码在进行判断时使用了两次type()函数,我们使用types模块中的变量代替之
# import types
# 
# if type(num) == types.IntType:
#     pass
# 
# #对象身份比较优于对象值比较
# #值比较:
# if type(num) == type(0):
#     pass
# #对象身份比较:
# if type(num) is types.IntType:
#     pass
# 
# #减少查询次数
# #import types
# from types import IntType
# if type(num) is IntType:
#     pass
# 
# #惯例风格可读性的考虑:使用isinstance()
# 
# 
# 最终代码
def displayNumType(num):
    print num ,'is',
    #isinstance同时判断多个种类的用法
    #如果是这四个其中之一
    if isinstance(num,(int, long, float, complex)):
        #返回这个type的名字
        print 'a number of type:', type(num).__name__
    else:
        print 'not a number at all!!'

displayNumType(-69)
displayNumType(9999999999999999999999999L)
displayNumType(98.6)
displayNumType(-5.2+1.9j)
displayNumType('xxx')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值