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')

时间: 2024-11-08 19:22:41

Python 代码优化基础——判断对象类型的相关文章

javascript基础 -- 判断对象类型 对象的深拷贝

在javascipt中,有array数组对象,object对象,正则对象,函数对象,typeof只能判断是对象,但是却不能判断属于何种对象. 记录一个方法用来判断对象属于那种对象: 使用Object.prototype.toString.call(elem).toLowerCase() 获取对象的类型,再使用 == 来判断是否该类型的对象. 看下图,对象是引用类型的值,所以当赋值一个对象的时候,不能象普通类型一样赋值,因为在引用类型赋值后,修改对象的值会直接修改到引用类型中的值,所以,赋值一个对

javascript 判断对象类型

typeof typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果. 此表总结了typeof所有可能的返回值: 操作数类型 返回值 undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" 函数对象 "function" E4X XM

(转)JavaScript中判断对象类型的种种方法

我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 type

JavaScript判断对象类型及节点类型、节点名称和节点值

一.JavaScript判断对象类型 1.可以使用typeof函数判断对象类型 1 function checkObject1(){ 2 var str="str"; 3 console.log(typeof(str))//输出"string"; 4 console.log(typeof(str)=="string")//输出true; 5 }? 2.使用对象的构造函数属性(constructor),来判断对象的类型: 1 function ch

c++派生类中构造函数和析构函数执行顺序、判断对象类型、抽象类、虚函数

一. 代码: 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<iostream> 5 using namespace std; 6 class A 7 { 8 public: 9 int a,b; 10 A(); 11 A(int x,int y); 12 ~A(); 13 }; 14 A::A() 15 { 16 printf("调用A类构造函数\

Java基础 ----- 判断对象的类型

1. 判断对象的类型:instanceOf 和 isInstance 或者直接将对象强转给任意一个类型,如果转换成功,则可以确定,如果不成功,在异常提示中可以确定类型 public static void main(String[] args) { Integer i = new Integer(10); System.out.println(i instanceof Integer); // 知道类型名 String parentClass = "java.lang.String";

【Python】字典或者对象类型中键或者属性的获取与存在性判断

# 定义测试用对象A,字典B class A(object): length = 10 B ={"length":10} # 判断对象是否含有某种属性 # 推荐这种方式,更Pythonic try: x = A.lengt except AttributeError: print("does not have {}".format("lengt")) # 这种low一点 if "leng" in dir(A): print(A

轻松python文本专题-判断对象里面是否是类字符串(推荐使用isinstance(obj,str))

场景: 判断对象里面是否是类字符串 一般立刻会想到使用type()来实现 >>> def isExactlyAString(obj): return type(obj) is type('') >>> isExactlyAString(1) False >>> isExactlyAString('1') True >>> 还有 >>> def isAString(obj): try :obj+'' except:re

判断对象类型

1.typeof不能区分数组类型和对象,只能区分原始类型与function 2.判断父级对象: isPrototypeOf -- 判断对象本身数据类型,及可能继承自原型的数据类型 let bool = Array.prototype.isPrototypeOf(obj) 3. 判断构造函数: 检查整个原型链 obj.constructor==Array 是数组,也可能继承自数组 let bool = obj instanceof Array 是数组,也可能继承自数组 4. 判断对象的内部clas