python中的内置函数getattr()与反射

1.介绍

其实getattr()这个方法最主要的作用是实现反射机制。也就是说可以通过字符串获取方法实例。这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载。

别喝__getattr__搞混了

在python的官方文档中:getattr()的解释如下:

getattr(object, name[, default])

Return the value of the named attribute of object. name must be a string. If the string is the name of one of the o......

python中的with语句使用

1.with语句是什么

有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。

如果不用with语句,代码如下:

file = open("/tmp/foo.txt")

data = file.read()

file.close()

这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是处理异常的加强版本:

file = open("/tmp/foo.t......

python中特殊函数定制类

1.__slot__

这个属性主要用于绑定属性时做限制。具体查看slot用法

2.__str__和__repl__

__str__定制直接打印实例时的输出信息,面向用户

__repl__在shell直接输入对象时打印的信息,面向开发者(调试)

3.__iter__和__next__

使得一个类支持for in语句来迭代

4.__getitem__和__setitem__

像list一样取和设定元素。还可以支持切片操作。

5.__getattr__

调用不存在的属性和方法时返回一些内容,而不是报错

6.__call__

使得实例对象支持: ......