你可以将变量传递到类 __str__ 中来更改输出吗?

问题描述 投票:0回答:1

我想将变量传递到 str (类内部)以更改其输出。例如:

class Basic:
    def __str__(self, specialCase=False):
        if specialCase == True:
            return "x"
        return "y"

example = Basic()
print(example)                    #this prints y
print(example,specialCase=True)   #this hopefully prints x?

有什么办法可以做到这一点吗?

我尝试使用

print(example(specialCase=True))
print(example,specialCase=True)
发送变量,但它们都只是响应错误。

python python-3.x printing
1个回答
0
投票

不能与

__str__
一起使用,但您可以将格式说明符与
__format__

一起使用
class Basic
    def __format__(self, format_spec):
        if format_spec == 'spec':
            return 'x'
        return 'y'

example = Basic()

print(f'{example:spec}, {example}') # x, y
© www.soinside.com 2019 - 2024. All rights reserved.