首页 » Python » Python 从入门到放弃 - Lesson 7 面向对象进阶

Python 从入门到放弃 - Lesson 7 面向对象进阶

 
文章目录

类的高级方法

静态方法

通过@staticmethod装饰器将类中的一个方法转换成静态方法,静态方法不能使用类和实例的变量

类方法

通过@classmethod装饰器将类中的一个方法转换成类方法,类方法只能使用类变量,不能使用实例变量

属性方法

通过@property装饰器将类中的一个方法转换成一个属性,再通过装饰器定义属性的setter和deleter方法来完成指定操作

类的特殊成员方法

__doc__

__doc__属性表示类的描述信息

__module__ 和 __class__

__module__属性表示对象所在的模块
__class__属性表示对象所在的类

__init__

构造函数,用于对实例进行初始化

__del__

析构函数,用于在实例销毁时进行收尾工作

__call__

__call__方法给将实例变成一个可调用的对象,并调用方法中的操作

__dict__

__dict__属性获取类或者对象中的所有成员,并以字典方式展示

__str__

__str__方法用于定义在打印实例时的输出,替代默认的内存地址

__getitem__、__setitem__、__delitem__

可以将对象转换成一个自定义的字典,以字典的方式进行存取

反射

通过字符串去查找程序运行时的属性或方法,有4个方法

    getattr(object, name, default=None)
    hasattr(object, name)
    setattr(x, y, v)
    delattr(x, y)

异常处理

try-except

对运行时的异常进行捕获并处理,对用户输出友好的错误信息

常用的异常类型

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python语法错误,代码不能编译
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的

自定义异常类型

断言

确定条件成立,否则抛出AssertionError异常

socket client

原文链接:Python 从入门到放弃 - Lesson 7 面向对象进阶,转载请注明来源!

0