首页 > 其他学习 > python > python中对象信息魔法方法
2018
11-23

python中对象信息魔法方法

__str__():定义对类的实例调用str()时的行为,print(object)时,会默认调用str(object)方法然后输出

__repr__():定义对类的实例调用repr(object)时的行为。

如果说__str__()体现的是一种用户的可读性,那么__repr__()方法产生的是机器可读的输出(大部分情况下,其输出可以作为有效的Python代码)

class Foo:
    def __str__(self):
        return '我是Foo类的对象的__str__()返回值'
    def __repr__(self):
        return '我是Foo类的对象的__repr__()返回值'
a=Foo()
a
我是Foo类的对象的__repr__()返回值
print(a)
我是Foo类的对象的__str__()返回值

__unicode__(self)定义对类的实例调用unicode()时的行为。 unicode()和str()很像,只是它返回unicode字符串。

__format__(self)定义当类的实例用format()方法格式化字符串时的行为,例如, “Hello, 0:abc!”.format(a) 会导致调用 a.__format__(“abc”) 。当定义你自己的数值类型或字符串类型时,你可能想提供某些特殊的格式化选项,这种情况下这个魔法方法会非常有用。

__hash__(self)定义对类的实例调用 hash() 时的行为。它必须返回一个整数,其结果会被用于字典中键的快速比较。同时注意一点,实现这个魔法方法通常也需要实现 __eq__ ,并且遵守如下的规则: a == b 意味着 hash(a) == hash(b)。

__nonzero__(self)定义对类的实例调用bool()时的行为,根据对类的设计,不同的实例这个魔法方法应该相应地返回True或False。

__dir__(self)定义对类的实例调用 dir()时的行为,这个方法应该向调用者返回一个属性列表。一般来说,没必要自己实现 __dir__ 。

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。