精华内容
下载资源
问答
  • 判断基本数据类型的方法
    千次阅读
    2021-01-13 08:14:55

    python判断数据类型的方法

    发布时间:2020-08-19 15:23:59

    来源:亿速云

    阅读:96

    作者:小新

    小编给大家分享一下python判断数据类型的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    python如何判断数据类型?

    在python中可以使用isinstance()函数来判断数据类型,isinstance()函数来判断一个对象是否是一个已知的类型,类似 type()。

    isinstance() 与 type() 区别:

    type() 不会认为子类是一种父类类型,不考虑继承关系。

    isinstance() 会认为子类是一种父类类型,考虑继承关系。

    如果要判断两个类型是否相同推荐使用 isinstance()。

    语法

    以下是 isinstance() 方法的语法:isinstance(object, classinfo)

    参数

    object -- 实例对象。

    classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

    返回值

    如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。

    实例

    以下展示了使用 isinstance 函数的实例:>>>a = 2

    >>> isinstance (a,int)

    True

    >>> isinstance (a,str)

    False

    >>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True

    True

    type() 与 isinstance()区别:class A:

    pass

    class B(A):

    pass

    isinstance(A(), A) # returns True

    type(A()) == A # returns True

    isinstance(B(), A) # returns True

    type(B()) == A # returns False

    以上是python判断数据类型的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

    更多相关内容
  • 判断数据类型方法

    千次阅读 2021-12-28 20:30:24
    判断数据类型方法

    判断数据类型的方法

    1.typeof()

    适用于判断除了null外的基础类型和function

    • 可以判断数据类型,它返回表示数据类型的字符串(返回结果只能包括number,boolean,string,function,object,undefined)
    • 可以使用typeof判断变量是否存在(如if(typeof a!=“undefined”){…})
    • 无法判断对象和数组,两者都返回object
    typeof '5' // string
    typeof 5 // number
    typeof null // object 因为null被认为是空对象
    typeof undefined // undefined
    typeof true // boolean
    typeof Symbol('5') // symbol
    typeof 5n // bigint
    typeof new Object(); // object
    typeof new Function(); // function
    或者
    console.log(typeof([1,2])); //object
    console.log(typeof(6)); //number
    console.log(typeof(true)); //boolean
    

    2.instanceof()

    只能用来判断变量的原型链上是否有构造函数的prototype属性(两个对象是否属于原型链的关系),不一定能获取对象的具体类型

    Instanceof 不适用判断原始类型的值,只能用于判断对象是否从属关系

    原理:因为A instanceof B 可以判断A是不是B的实例,返回一个布尔值,由构造类型判断出数据类型

    分析:[].proto 的原型 是指向Array.prototype 的,说明两个对象是属于同一条原型链的,返回true

    console.log(arr instanceof Array ); // true
    console.log(date instanceof Date ); // true
    console.log(fn instanceof Function ); // true
    //注意: instanceof 后面一定要是对象类型,大小写不能写错,该方法试用一些条件选择或分支
    
    // 空对象的判断问题
    
    let obj1 = {}
    console.log(obj1 instanceof Object) // true
     
    let obj2 = Object.create(null)
    console.log(obj2 instanceof Object) // false
     
    let obj3 = Object.create({})
    console.log(obj3 instanceof Object) // true
    

    3.通过Object下的toString.call()方法来判断

    Object.prototype.toString方法返回对象的类型字符串,因此可用来判断一个值的类型。

    因为实例对象有可能会自定义toString方法,会覆盖Object.prototype.toString,所以在使用时,最好加上call。

    所有的数据类型都可以使用此方法进行检测,且非常精准。

    返回一个布尔值。

    console.log(toString.call('123')); //[object String]
    console.log(toString.call(undefined)); //[object Undefined]
    console.log(toString.call({})); //[object Object]
    console.log(toString.call([])); //[object Array]
    
    Object.prototype.toString.call('5') // [object String]
    Object.prototype.toString.call(5) // [object Number]
    Object.prototype.toString.call([5]) // [object Array]
    Object.prototype.toString.call(true) // [object Boolean]
    Object.prototype.toString.call(undefined) // [object Undefined]
    Object.prototype.toString.call(null) // [object Null]
    Object.prototype.toString.call(new Function()); // [object Function]
    Object.prototype.toString.call(new Date()); // [object Date]
    Object.prototype.toString.call(new RegExp()); // [object RegExp]
    Object.prototype.toString.call(new Error()); // [object Error]
    

    4.根据对象的contructor判断

    原理:每一个实例对象都可通过constructor来访问它的构造函数,其实也是根据原型链的原理来的。
    构造函数属性判断,返回一个布尔值。

    由于undefined和null是无效的对象,因此是没有constructor属性的,这两个值不能用这种方法判断。

    console.log(arr.constructor === Array); //true
    //或
    let a = [1,2]
    console.log(a.constructor === Function); //false
    
    '5'.__proto__.constructor === String // true
    [5].__proto__.constructor === Array // true
     
    undefined.__proto__.constructor // Cannot read property '__proto__' of undefined
     
    null.__proto__.constructor // Cannot read property '__proto__' of undefined
    

    5.isArray()判断是否为数组

    ES5方法,返回一个布尔值。

    var a = [1,2];
    console.log(Array.isArray(a)); //true
    

    6.jq中判断数据类型的方法

    jQuery提供了一系列工具方法,用来判断数据类型,以弥补JavaScript原生的typeof运算符的不足。以下方法对参数进行判断,返回一个布尔值。

    jQuery.isArray() //是否为数组
    jQuery.isEmptyObject() //是否为空对象 (不含可枚举属性)。
    jQuery.isFunction() //是否为函数
    jQuery.isNumberic() //是否为数字
    jQuery.isPlainObject() //是否为使用“{}”或“new Object”生成对象,而不是浏览器原生提供的对象。
    jQuery.isWindow() //是否为window对象;
    jQuery.isXMLDoc() //判断一个DOM节点是否处于XML文档中。
    
    展开全文
  • JS 判断数据类型方法

    千次阅读 2022-01-30 16:00:08
    ECMAScript中有5中简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1中复杂的数据类型————Object,Object本质上是由一组无序的名值对组成的。 其中Unde..

    目录

    一、JS 中的数据类型

    二、JS 中判断数据类型的方法

    1、使用 typeof

    2、使用 instanceof 

    3、使用Object.prototype.toString.call

    4、使用constructor


    一、JS 中的数据类型

    ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。还有1中复杂的数据类型————Object,Object本质上是由一组无序的名值对组成的。

    其中Undefined、Null、Boolean、Number都属于基本类型。

    Object、Array和Function则属于引用类型,

    数据类型说明
    数值类型Number只能是数字或者小数
    字符串类型String字符串类型String,用单引号或者双引号包裹的任何字符
    布尔类型Boolean只能是true或false代表真假
    未定义undefined定义变量后不赋值,这个变量就是undefined

    空null,是对象类型,

    null值表示一个空对象指针
    对象类型object有很多种,如数组对象、数学对象、日期对象

    二、JS 中判断数据类型的方法

    1、使用 typeof

    let obj={
                name:'dawn',
                age:21
            }
            let fn=function() {
                console.log('我是 function 类型');
            }
            console.log(typeof 1);       //number
            console.log(typeof 'abc');   //string
            console.log(typeof true);    //boolean
            console.log(typeof undefined);  //undefined 
            console.log(typeof fn);      //function
            console.log(typeof (new Date) );  //object
            console.log(typeof null);     //object
            console.log(typeof [1,2,3]);  //object
            console.log(typeof obj);      //object

    由结果可知typeof可以测试出numberstringbooleanundefinedfunction

    【注意】:对于null及数组、对象,typeof均检测出为object,不能进一步判断它们的类型。

    2、使用 instanceof 

    obj instanceof Object ,可以左边放你要判断的内容,右边放类型来进行JS类型判断,只能用来判断复杂数据类型,因为instanceof 是用于检测构造函数(右边)的 prototype 属性是否出现在某个实例对象(左边)的原型链上。

     let arr=[1,2,3,4,5,6,7]
            let obj={
                name:'dawn',
                age:21
            }
            let fn=function() {
                console.log('我是 function 类型');
            }
    
           console.log(arr instanceof Array);  //true
           console.log(obj instanceof Object);  //true
           console.log(fn instanceof Function);  //true
           console.log((new Date) instanceof Date);  //true

    3、使用Object.prototype.toString.call

    let obj = {
                name: 'dawn',
                age: 21
            }
            let fn = function () {
                console.log('我是 function 类型');
            }
            
            console.log(Object.prototype.toString.call(1));        // [object Number]
            console.log(Object.prototype.toString.call('Hello tomorrow')); // [object String ]
            console.log(Object.prototype.toString.call(true));     // [object Boolean]
            console.log(Object.prototype.toString.call(undefined));  // [object Undefined]
            console.log(Object.prototype.toString.call(fn));   // [object Function]
            console.log(Object.prototype.toString.call(new Date));  // [object Date]
            console.log(Object.prototype.toString.call(null));   // [object Null]
            console.log(Object.prototype.toString.call([1, 2, 3]));  // [object Array]
            console.log(Object.prototype.toString.call(obj));       // [object Object]

    在任何值上调用 Object 原生的 toString() 方法,都会返回一个 [object NativeConstructorName] 格式的字符串。每个类在内部都有一个 [[Class]] 属性,这个属性中就指定了上述字符串中的构造函数名。
    但是它不能检测非原生构造函数的构造函数名。

    4、使用constructor

    let arr = [1, 2, 3, 4, 5, 6, 7]
            let obj = {
                name: 'dawn',
                age: 21
            }
            let fn = function () {
                console.log('我是 function 类型');
            }
    
            console.log((9).constructor === Number);  //true
            console.log('hello'.constructor === String);  //true
            console.log(true.constructor === Boolean);  //true
            console.log(fn.constructor === Function);  //true
            console.log((new Date).constructor === Date);  //true
            console.log(obj.constructor === Object);  //true
            console.log([1, 2, 3].constructor === Array);  //true

     【注意】:constructor不能判断undefined和null,并且使用它是不安全的,因为contructor的指向是可以改变的

     

    展开全文
  • 可以用以下方法判断: class PrimitiveNumber { static [Symbol.hasInstance](x) { return typeof x === 'number' } } console.log(111 instanceof PrimitiveNumber)

     

    对于原始类型来说,除了 null 都可以调用typeof显示正确的类型。 

    typeof 1 // 'number'
    typeof '1' // 'string'
    typeof undefined // 'undefined'
    typeof true // 'boolean'
    typeof Symbol() // 'symbol'
    

    但对于引用数据类型,除了函数之外,都会显示"object"。 

    typeof [] // 'object'
    typeof {} // 'object'
    typeof console.log // 'function'

     因此采用typeof判断对象数据类型是不合适的,采用instanceof会更好,instanceof的原理是基于原型链的查询,只要处于原型链中,判断永远为true

     

    const Person = function() {}
    const p1 = new Person()
    p1 instanceof Person // true
    var str1 = 'hello world'
    str1 instanceof String // false
    var str2 = new String('hello world')
    str2 instanceof String // true
    

    用下面这种方式判断基本数据类型: 

    class PrimitiveNumber {
        static [Symbol.hasInstance](x) {
            return typeof x === 'number'
        }
    }
    console.log(111 instanceof PrimitiveNumber) //true

    其实就是自定义instanceof行为的一种方式,这里将原有的instanceof方法重定义,换成了typeof,因此能够判断基本数据类型。 

    实现功能的核心: 原型链的向上查找。 

    function myInstanceof(left, right) {
        //基本数据类型直接返回false
        if(typeof left !== 'object' || left === null) return false;
        //getProtypeOf是Object对象自带的一个方法,能够拿到参数的原型对象
        let proto = Object.getPrototypeOf(left);
        while(true) {
        //查找到尽头,还没找到
            if(proto == null) return false;
        //找到相同的原型对象
            if(proto == right.prototype) return true;
            proto = Object.getPrototypeOf(proto);
    }
    }

     

    测试结果: 

     

    console.log(myInstanceof("111", String));   //false
    console.log(myInstanceof(new String("111"), String));  //true

     

    展开全文
  • JS判断数据类型的5种方法

    千次阅读 2021-09-27 22:22:29
    我们先来了解一下JS中数据类型有哪些 基本数据类型(值类型):String、Number、...通常用来判断基本数据类型,它返回表示数据类型的字符串(返回结果只能包括number,boolean,string,function,undefined,object); *
  • js判断数据类型(全)

    千次阅读 2022-04-11 08:05:30
    js基本数据类型 基本数据类型: String、Number、Boolean、Undefined未定义、null空、symbol表示独一无二的值(es6引入的新的原始数据基本类型)。 Number:返回的特殊值NaN,表示不是数值,用于表示本来要返回的...
  • 判断js数据类型的四种方法和原理

    万次阅读 多人点赞 2019-05-28 15:44:23
    怎么去判断一个数据属于哪个数据类型,这个是很常见的操作,我们一般都会想到typeof和instanceof这两个常见的方法,但有时候这两种方法并不能满足我们的需求。那让我们来看一下都有哪些可以判断数据类型方法吧。 1...
  • C语言判断数据类型方法

    千次阅读 2021-03-08 16:06:27
    C语言判断数据类型方法 python中判断数据类型只需要type()即可,但c语言中是没有这个的,至少据我所知,题目给的库函数中是没有类似的函数的 所以我们可以进行如下操作 if(int(pow(n,0.5)) == pow(n,0.5)) 即将其...
  • js 判断数据类型的几种方法

    千次阅读 2022-04-08 16:44:42
    介绍使用 typeof、instanceof 和 constructor 等方法判断数据类型
  • java判断数据类型

    千次阅读 2022-03-22 19:50:34
    1、基本数据类型。如byte、short、char、int、long、float、double、boolean,这些的比较用==。 2、对象数据类型。如Integer,String,List,Collection,Map。 (1)方法一:使用对象变量.getClass().getName(),如: ...
  • java判断基本数据类型方法

    万次阅读 2014-04-03 12:22:19
    经检验,网上很多用instanceof直接判断方法是行不通的。我总结出两种方法。 以判断变量是否为int为例,直接上代码。 方法一: public class test { public static void main(String[] args){ test t...
  • 这个方法很常见,一般用来判断基本数据类型,如:string,number,boolean,symbol,bigint(es10新增一种基本数据类型bigint),undefined等。 typeof 目前能返回string,number,boolean,symbol,bigint,unfined...
  • python如何判断数据类型

    千次阅读 2021-01-13 23:27:53
    详细内容python如何判断数据类型?在python中可以使用isinstance()函数来判断数据类型,isinstance()函数来判断一个对象是否是一个已知的类型,类似 type()。推荐:《python教程》isinstance() 与 type() 区别:type...
  • Java 数据类型及其判断

    千次阅读 2021-03-05 17:34:31
    基本数据类型,也称原始数据类型:byte、short、char、int、long、float、double、boolean它们之间的比较,应该用双等号(==)比较的是它们的值。2.引用数据类型:JAVA当中所有的类都是继承于Object这个基类的,在...
  • 四种判断数据类型方法

    千次阅读 2021-03-17 18:36:05
    //false -->不能判断字面量的基本数据类 缺点:只能判断对象是否存在于目标对象的原型链上,不能判断基本数据类型 3.constructor var a = 1; var b = new Number(1); function func(){ console.log("haha"); } ...
  • 浮点数之间的等值判断基本数据类型不能用==来比较,包装数据类型不能用 equals 来判断。说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进 Java 开发手册 8/44 制...
  • 数据类型判断

    千次阅读 2021-02-06 22:38:37
    介绍几种判断数据类型的方法typeoftypeof 对于基本数据类型判断是没有问题的,但在判断引用数据类型(如:Array,function)是没有用的。Instance ofinstance of 判断new关键字创建的引用数据类型但它在做判断时不...
  • java 判断数据类型方法

    万次阅读 2017-07-13 09:32:35
    java 判断数据类型方法 1。我从SOLR查询中获取一个数据一,已知数据类型,是string或者int 或者其他 2。我有一个方法(set方法),只有一个参数,但是我不知道参数的数据类型,可能是string 或者int 或者其他...
  • 一种基本数据类型, 一种引用数据类型, 基本数据都有,string、number、Boolean、null、undefined; 引用数据类型有object, es6新增一个symbol 1、symbol类型 Symbol()返回的symbol值都是唯一的,使用Symbol()创建...
  • JAVA 虚机自动完成基本类与包装类的转换 基本类型的包装类都采用final修饰方法,因此无法继承它们扩展的新类,也无法重写它们的方法。 包装类: 包装类是基本类的扩展 int i=2, Integer i = new Integer(2); 其实...
  • JS数据类型之基本数据类型

    万次阅读 多人点赞 2019-06-28 16:46:43
    1.JavaScript(以下简称js)的数据类型分为两种:原始类型(即基本数据类型)和对象类型(即引用数据类型); 2.js常用的基本数据类型包括undefined、null、number、boolean、string; 3.js的引用数据类型也就是...
  • python怎么判断数据类型

    千次阅读 2020-12-29 01:01:41
    一般通过以下方法进行判断:1、isinstance(参数1,参数2)描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type()参数1:变量参数2:可以是直接或间接类名、基本类型或者由它们组成的元组。...
  • java基本数据类型和引用类型的判断

    千次阅读 2018-01-30 16:27:33
    查看例子package day02;//boolean类型的用法 public class Test05 { public static void main(String[] args) { // TODO Auto-generated method stub boolean flag=true; int a=1;
  • 所有语言的基本数据类型就是那么几种,因为之前一直从事移动端,在学习js的过程中,总结一下js的基本类型及用法。 JavaScript 数据类型:字符串、数字、布尔,对象、Null、Undefined 1.String(字符串): 字符...
  • python中有哪些基本数据类型

    千次阅读 2021-01-12 00:29:40
    python的基本数据类型有哪些?下面一一给大家介绍:1、数字 ---> int类当然对于数字,Python的数字类型有int整型、long长整型、float浮点数、complex复数、以及布尔值(0和1),这里只针对int整型进行介绍学习。在...
  • 如何判断数据类型

    千次阅读 2020-08-31 20:45:10
    使用typeof可以判断基本数据类型,在使用typeof判断引用数据类型时除了判断function时返回function类型,其他引用类型返回的都是object。并且返回的数据类型是字符串形式的小写 使用方法:typeof a 2、instanceof ...
  • JS中检测数据类型的7种方法

    千次阅读 2022-05-30 14:04:20
    二、检测数据类型方法: 1、typeof 检测一些基本数据类型 2、A instanceof B检测当前实例是否隶属于某各类 3、constructor构造函数 4、hasOwnporperty检测当前属性是否为对象的私有属性 5、is Array判断...
  • Java 基本数据类型存储位置

    万次阅读 多人点赞 2018-11-05 10:48:13
    Java 基本数据类型 及 == 与 equals 方法的区别 转载地址:https://www.cnblogs.com/Latiny/p/8099581.html  Java数据类型分为基本数据类型与引用数据类型。    1 基本数据类型 byte:Java中最小的数据类型...
  • Qt C++判断数据类型

    千次阅读 2020-10-21 11:34:57
    头文件.h引入: #include <typeinfo> int i = 1; QString j = typeid(i).name(); qDebug() << j; 输出 “int”

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 936,867
精华内容 374,746
关键字:

判断基本数据类型的方法