python中对象信息魔法方法
qingheluo2018-11-23清河洛263
__str__():定义对类的实例调用str()时的行为,print(object)时,会默认调用str(object)方法然后输出__repr__():定义对类的实例调用repr(object)时的行为。如果说__str__()体现的是一种用户的可读性,那么__repr__()方法产生的是机器可读的输出(大部分情况下,其输出可以作为有效的Python代码)class Foo:
def __str__(self):
return ‘我是Foo类的对象的__str__()返回值‘
def __repr__(self):
return ‘我是F...
__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 。