zoukankan      html  css  js  c++  java
  • python对象之对象基础1

    简介:

      python程序中保存的所有数据都是围绕对象这个概念来构建的。对象包括一些基本的数据类型,如数字、字符串、列表、字典。但也可以通过类的形式创建用户定义的对象。

      python 使用对象模型来存储数据。构造任何类型的值都是一个对象。 

      所有的 Python 对像都拥有三个特性:身份,类型和值

      身份:

      每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数 id()来得到。 这个值可以被认为是该对象的内存地址。您极少会用到这个值,也不用太关心它究竟是什么。

      类型

      对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数 type()查看 Python 对象的类型。因为在 Python 中类型也是对象,所以 type()返回的是对象而不是简单的 字符串。 

      

      对象表示的数据项

      上面三个特性在对象创建的时候就被赋值,除了值之外,其它两个特性都是只读的。对于 新风格的类型和类, 对象的类型也是可以改变的。 

    【1】对象属性

      用“.”(点语法)可以访问到对象的属性

    a = 1 + 2j      #创建一个复数
    r = a.real      #获得实部(属性)
    #1.0
    
    b = [0,1,2]     #创建一个列表
    b.append(3)     #使用append方法为列表添加一个新元素
    #[0, 1, 2, 3]

    【2】标准类型

    • 数字 Numbers (数字:可以分为int(有符号数型)、long(长整形)、float(浮点型)、complex(复数型))
    • 布尔型(true、false)
    • 字符串 String
    • 列表 List
    • 元组 Tuple
    • 字典 Dictionary

    【3】其他内建类型

    • 类型
    • Null对象(None)
    • 文件
    • 集合/固定集合
    • 函数/方法
    • 模块

      -3.1类型对象和type类型对象
        通过调用 type()函数你能够得到特定对象的类型信息: 

    type(1)
    #<type 'int'>

        不过你应当意识到它并不是一个简简单单的告诉你 42 是个整数这样 的字符串。您看到的<type 'int'>实际上是一个类型对象,碰巧它输出了一个字符串来告诉你 它是个 int 型对象。 

        所有类型对象的类型都是type

    type(type(1))
    #<type 'type'>

      -3.2None,python的null对象

        python有一个特殊的类型,被称作 Null 对象或者 NoneType,它只有一个值,那就是 None。 它不支持任何运算也没有任何内建方法。 

        None 没有什么有用的属性,它的布尔值总是 False。 

        所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布 尔 True 或 False 值。空对象、值为零的任何数字或者 Null 对象 None 的布尔值都是 False。

        下列对象的布尔值是 False:

    • None
    • False (布尔类型)
    • 所有的值为零的数: 0 (整型)、(浮点型)、0L (长整型)、0.0+0.0j (复数)
    • "" (空字符串)
    • [] (空列表)
    • () (空元组)
    • {} (空字典)

     【4】内部类型

      -4.1 代码对象

        代码对象是编译过的 Python 源代码片段,它是可执行对象。通过调用内建函数 compile() 可以得到代码对象。代码对象可以被 exec 命令或 eval()内建函数来执行。   

        代码对象本身不包含任何执行环境信息, 它是用户自定义函数的核心, 在被执行时动态 获得上下文。(事实上代码对象是函数的一个属性)一个函数除了有代码对象属性以外,还有一 些其它函数必须的属性,包括函数名,文档字符串,默认参数,及全局命名空间等等。

      -4.2 帧对象

       帧对象表示 Python 的执行栈帧。帧对象包含 Python 解释器在运行时所需要知道的所有信息。它的属性包括指向上一帧的链接,正在被执行的代码对象(参见上文),本地及全局名字空 间字典以及当前指令等。每次函数调用产生一个新的帧,每一个帧对象都会相应创建一个 C 栈帧。 

      -4.3 跟踪记录对象

        当你的代码出错时, Python 就会引发一个异常。如果异常未被捕获和处理,解释器就会退出脚本运行,显示类似下面的诊断信息:

         Traceback (innermost last):
         File "<stdin>", line N?, in ???
         ErrorName: error reason
    

        当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建。如果一个异常有 自己的处理程序,处理程序就可以访问这个跟踪记录对象。 

      -4.4 切片对象

      -4.5 省略对象

        省略对象用于扩展切片语法中,起记号作用。 这个对象在切片语法中表示省略号。类似Null 对象 None, 省略对象有一个唯一的名字 Ellipsis, 它的布尔值始终为 True. 

      -4.6 XRange对象

        调用内建函数 xrange() 会生成一个 Xrange 对象,xrange()是内建函数 range()的兄弟版本, 用于需要节省内存使用或 range()无法完成的超大数据集场合。

      

  • 相关阅读:
    《面试系列一》一个怂到极点的开始
    NuGet 私房服务使用帮助
    Nuspec 范本文件
    送给前线码农的话 – 大牛们的经典语录
    Visual Studio 增加源码头注释
    为 Orchard 增加 MVC 的脚手架.
    为 Orchard 增加扩展的存储位置
    Orchard 瘦身优化
    Hybrid Multiple Attention Network for Semantic Segmentation in Aerial Images
    【nvidia jetson xavier】 Linux系统安装+Deepstream 5.1环境部署
  • 原文地址:https://www.cnblogs.com/Jiangchuanwei/p/8471358.html
Copyright © 2011-2022 走看看