Skip to main content
 首页 » 编程设计

python之默认情况下,如何从类中返回列表而不是字符串

2025年05月04日15www_RR

class A: 
    def __init__(self, message): 
        self.message = message 
 
    def __repr__(self): 
        return self.message 
 
print A("Hello") 

上面的代码打印出“Hello”,因为返回了一个字符串。 但我想默认返回一个列表。就像我写的那样:

class A: 
    def __init__(self, message): 
        self.message = message 
 
    def __repr__(self): 
        mylist = [self.message] 
        return mylist 
 
print A("Hello") 

以上代码报错TypeError: __str__ returned non-string (type list)

我无法创建类的对象,因为我需要将其作为异常处理。喜欢:

try: 
    #some code which passes parameters to constructor of A if this fails. 
except A as e: 
    #here I want e as a list instead of string. 

有什么方法可以返回列表吗?

请您参考如下方法:

__str__和 __repr__方法必须返回字符串。您必须创建一个自定义的 getter 函数。

例如:

class A: 
    def __init__(self, message): 
        self.message = message 
 
    def get_message_as_list(self): 
        return [self.message] 
 
my_object = A("Hello") 
print(my_object.get_message_as_list()) 

正如 jonrsharpe 所说,您不能真正为此使用魔术(双下划线)方法。