我想将变量传递到 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)
发送变量,但它们都只是响应错误。
不能与
__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