• 技术文章 >后端开发 >Python教程

    Python对象类型的详细介绍

    零下一度零下一度2017-07-19 16:27:32原创1149
    对于python,一切事物都是对象,程序中存储的所有数据都是对象,对象基于类创建计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。
    class 指自定义类型,type 指内置类型。两者都表示数据类型,称呼不同而已
    每个对象都有一个身份、一个类型和一个值,身份指对象在内存中所处位置的指针(内存中的地址),内置函数id()可返回一个对象的身份。变量名就是引用这个具体位置的名称
    实例化:创建特定类型的对象
    实例被创建后,其身份和类型不可改变
    若对象值可修改,称为可变对象
    若对象值不可修改,称为不可变对象
    容器:某个对象包含对其它对象的引用,如 列表。
    python是强类型语言,对象所属的类型决定了这个对象所能参与的操作或它支持的方法,即方法存在类中,对象里具有的功能都是去类里找的。
    大多数对象都有大量特有的数据属性和方法
    属性:与对象相关的值,如 变量名
    方法:被调用时将在对象上执行某些操作的函数

    python会把类型中经常使用的操作做成
    1.内置方法
    2.语法糖,自动触动方法

    Python对象类型及其运算

    基本要点:
        程序中储存的所有数据都是对象(可变对象:值可以修改   不可变对象:值不可修改)
        每个对象都有一个身份、一个类型、一个值
            例:
                >>> a1 = 'abc'
                >>> type(a1)
                str
                    创建一个字符串对象,其身份是指向它在内存中所处的指针(在内存中的位置)
                    a1就是引用这个具体位置的名称
                    使用type()函数查看其类型
                    其值就是'abc'
         自定义类型使用class
         对象的类型用于描述对象的内部表示及其支持的方法和操作
         创建特定类型的对象,也将该对象称为该类型的实例,实例被创建后,其身份和类型就不可改变
         容器:某对象内包含对其它对象的引用
         
         对象拥有特有的数据属性和方法,使用点运算符调用
                数据:变量
                方法:函数

    1)对象的身份和类型

    两个对象比较:
        1、值比较:对象中的数据是否相同;
        2、身份比较:两个变量名引用的是否为同一对象;
        3、类型比较:两个对象的类型是否相同;
    注意:
        内置函数id()可返回对象的身份即在内存中的位置
        is比较两个对象的身份
        type()返回对象的类型
    
            例:
                >>> num1 = 5
                >>> num2 = 6
                >>> num1 == num2                值比较
                False                   
                >>> num1 is num2                身份比较
                True
                >>> type(num1) is type(num2)    类型比较
                True

    2)核心数据类型

        数字:int, long, float, complex(复数), bool
        字符:str, unicode
        列表:list
        字典:dict
        元组: tuple
        文件:file
        其它类型:集合(set), frozenset, 类类型, None

    3)类型转换

            str(), repr()或format():将非字符型数据转换为字符;
            int():                   转为整数
            float():                 转为浮点数
            list(s):                 将字串s转为列表
            tuple(s):                将字串s转为元组
            set(s):                  将字串s转为集合
            frozenset(s):            将字串s转换为不可变集合;
            dict(d):                 创建字典;其d必须是(key, value)的元组序列
    
    例:
        >>> str1 = 'hello,fanison'
        >>> list(str1)
        ['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']
        >>> tuple(str1)
        ('h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n')
        >>> set(str1)
        set(['a', 'e', 'f', 'i', 'h', 'l', 'o', ',', 's', 'n'])       特别注意!!!去重
        >>> l1=[('a',1),('b',2),('c',3)]
        >>> list(l1)
        {'a': 1, 'c': 3, 'b': 2}
        
    补充例题:
            >>> a = 'ABC'
            >>> b = a
            >>> a = 'XYZ'
            >>> print a  b
            'XYZ'  'ABC'
        图解过程

    4)数字类型操作

        5种数字类型:整型、长整型、浮点型、复数、布尔型
        所有数字类型均不可变
            >>> a = 10    # 整型 
            >>> b = 1.5   # 浮点型
            >>> c = True  # 布尔型
            >>> d = 5+2j  # 复数
            例:
                >>> 1 + 2    
                3
                >>> 1.0 + 2
                3.0
                >>> 11 % 4    
                3
                >>> 11.0 / 4     
                2.75
                整数和浮点数混合运算的结果是浮点数

    5)布尔类型

        bool(布尔型)之所以属于数字类型,是因为bool是int的子类。
                >>> int(True)
                1
                >>> int(False)
                0
                >>> bool(1)
                True
                >>> bool(-1)
                True
                >>> bool(0)
                False
            结论:
                bool 转 int时, Ture-->1, False-->0
                int 转 bool时, 非0-->True, 0-->False
        
        与运算:只有两个布尔值都为 True 时,计算结果才为 True。        
            >>> True and True   
            True
            >>> True and False
            False
            >>> False and True
            False
            >>> False and False
            False
        或运算:只要有一个布尔值为 True,计算结果就是 True。        
            >>> True or True
            True
            >>> True or False
            True
            >>> False or True
            True
            >>> False or False
            False
        非运算:把True变为False,或者把False变为True:        
            >>> not True
            False
            >>> not False
            True
        
        注意:1、任何非0数字和非空对象都为真;
              2、数字0、空对象和特殊对象None均为假;
        
        and 和 or 运算的一条重要法则:短路计算。
                1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。    
                2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。   
                所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
        例:
           >>> a = 'python'
           >>> print 'hello,', a or 'fanison'
           hello,python
           >>> b = ''
           >>> print 'hello,', b or 'fanison'
           hello,fanison

    以上就是Python对象类型的详细介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 运算 及其
    上一篇:Python处理csv文件实例详解 下一篇:Eclipse 中出现红色下划波浪线与红色感叹号
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• Python数据分析之concat与merge函数(实例详解)• 实例详解Python面向对象的四大特征• 图文详解怎么用Python绘制动态可视化图表• 简单学习Python字符和列表(实例详解)• 介绍六个超好用的Python内置函数
    1/1

    PHP中文网