码迷,mamicode.com
首页 > 编程语言 > 详细

Python类和对象_调试与术语

时间:2020-07-09 12:27:04      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:most   浅复制   cal   存在   通过   file   layout   def   trace   

一,调试

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 函数来实现。

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

结束。

Python类和对象_调试与术语

标签:most   浅复制   cal   存在   通过   file   layout   def   trace   

原文地址:https://www.cnblogs.com/liusingbon/p/13272737.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!