微软 linux命令 linux 开源 php wordpress Python apache HTML5 shell Ubuntu Android java Windows nginx 程序员 Firefox mysql centos google

Python的神奇方法指南:描述你的类

用一个字符串来说明一个类这通常是有用的。 在 Python 中提供了一些方法让你可以在你自己的类中自定义内建函数返回你的类行为的描述。

__str__(self)

当你定义的类中一个实例调用了 str(),用于给它定义行为

__repr__(self)

当你定义的类中一个实例调用了 repr(),用于给它定义行为。 str() 和 repr() 主要的区别在于它的阅读对象。 repr() 产生的输出主要为计算机可读(在很多情况下,这甚至可能是一些有效的 Python 代码),而 str() 则是为了让人类可读。

__unicode__(self)

当你定义的类中一个实例调用了 unicode(),用于给它定义行为。 unicode() 像是 str(),只不过它返回一个 unicode 字符串。 警惕!如果用户用你的类中的一个实例调用了 str(),而你仅定义了 __unicode__(),那它是不会工作的。 以防万一,你应当总是定义好 __str__(),哪怕用户不会使用 unicode

__hash__(self)

当你定义的类中一个实例调用了 hash(),用于给它定义行为。 它必须返回一个整型,而且它的结果是用于来在字典中作为快速键比对。

__nonzero__(self)

当你定义的类中一个实例调用了 bool(),用于给它定义行为。 返回 True 或 False,取决于你是否考虑一个实例是 True 或 False 的。

我们已经相当漂亮地干完了神奇方法无聊的部分(无示例),至此我们已经讨论了一些基础的神奇方法,是时候让我们向高级话题移动了。

延伸阅读

评论