gpt4 book ai didi

python - Python 类表示方法

转载 作者:太空狗 更新时间:2023-10-30 00:57:45 26 4
gpt4 key购买 nike

我知道 __repr____str__ 方法的存在是为了提供类实例的正式和非正式表示。但是是否也存在类对象的等价物,以便在打印类对象时,可以显示它的一个很好的表示形式?

>>> class Foo:
... def __str__(self):
... return "instance of class Foo"
...
>>> foo = Foo()
>>> print foo
instance of class Foo
>>> print Foo
__main__.Foo

最佳答案

当您调用 print(foo) 时,foo__str__ 方法会被调用。 __str__foo类中找到,也就是Foo

同样,当您调用print(Foo) 时,Foo__str__ 方法也会被调用。 __str__ 位于Foo 类中,通常是type。您可以使用元类更改它:

class FooType(type):
def __str__(cls):
return 'Me a Foo'
def __repr__(cls):
return '<Foo>'

class Foo(object):
__metaclass__=FooType
def __str__(self):
return "instance of class Foo"

print(Foo)
# Me a Foo

print(repr(Foo))
# <Foo>

关于python - Python 类表示方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com