• Python类和对象_调试与术语


    一,调试

    1.当我们开始使用对象的时候,你就容易遇到一些新的异常。如果你试图读取一个不存在的属性,就会得到一个属性错误:

    >>> p = Point()

    >>> p.x = 3.0

    >>> p.y = 4.0

    >>> p.z          #没有声明,就直接读取属性p.z,会报错属性错误。

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    AttributeError: 'Point' object has no attribute 'z'

    2.如果不确定一个对象是什么类型,可以使用type【问】一下:

    >>> type(p)

    <class '__main__.Point'>

    3.还可以用 isinstance 函数来检查一下一个对象是否为某一个类的实例:

    >>> isinstance(p, Point)

    True

    >>> isinstance(p, point)

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    NameError: name 'point' is not defined

    4.如果不确定某一对象是否有一个特定的属性,可以用内置函数 hasattr:

    >>> hasattr(p, 'x')

    True

    >>> hasattr(p, 'j')

    False

    hasattr函数的第一个参数可以是任意一个对象;第二个参数是一个字符串,就是要判断是否存在的属性名字。

    5.用 try 语句也可以试验一个对象是否有你需要的属性:

    >>> try:

    ...   x = p.x

    ... except AttributeError:

    ...   x = 0

    ... 

    这样写一些处理不同类型变量的函数就更容易了。

    二,术语

    类: 用户定义的类型。一个类的声明建立了一个新的类的对象。

    类的对象: 包含了用户自定义类型相关信息的一个对象。可以用于创建类的一个实例。

    实例: 索引某一个类的一个对象。

    实例化: 创建一个新的对象。

    属性:一个对象内附属的数值的名字

    内嵌对象: 一个对象作为属性存储在另一个对象内。

    浅复制: 复制一个对象中除了内嵌对象之外的所有引用;通过 copy 模块的 copy 函数来实现。

    深复制: 复制一个对象的所有内容,包括内嵌对象,以及内嵌对象中的所有内嵌对象等等;通过 copy 模块的 deepcopy 函数来实现。

    类图: 一种图解,用于展示类与类中的属性以及属性的值。

    结束。

  • 相关阅读:
    [Linux]软件目录
    [Linux]查看Linux内核及发行版本
    [S7706]华为ACL
    [S7706]华为配置DHCP
    QML-密码管理器
    QML-AES加解密小工具
    LaTex中文article模板(支持代码、数学、TikZ)
    Memo-Tech
    VIM学习笔记
    CodeForces 674C Levels and Regions
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13272737.html
Copyright © 2020-2023  润新知