# 这些代码与其他说明可以写在注释中，然后，由一些工具来自动生成文档。既然这些代码本身就可以粘贴出来直接运行，那么，
# 可不可以自动执行写在注释中的这些代码呢？答案是肯定的。
# 当我们编写注释时，如果写上这样的注释：
def abs(n):
	'''
	Function to get absolute value of number

	Example:

	>>> abs(1)
	1
	>>> abs(-1)
	1
	>>> abs(0)
	0
	'''
	return n if n >= 0 else (-n)

# 无疑更明确地告诉函数的调用者该函数的期望输入和输出
# 并且，Python内置的‘文档测试’(doctest)模块可以直接提取注释中的代码并执行测试
# doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确，只有测试异常的时候，可以用...表示
# 中间一大段烦人的输出


# 让我们用doctest来测试上次编写的Dict类：
# 什么输出也没有。这说明我们编写的doctest运行都是正确的。
# 如果程序有问题，比如把__getattr__()方法注释掉，再运行就会报错：
# 注意到最后3行代码。当模块正常导入时，doctest不会被执行。只有在命令行直接运行时，
# 才执行doctest。所以，不必担心doctest会在非测试环境下执行。
