Hello, when i try to print from my class, i get this error:

Hello, when i try to print from my class, i get this error:

代码:

class Passangers():
    def __init__(self, passangerNames, nationalities, age, gender):
        self.passangerNames = passangerNames 
        self.nationalities = nationalities 
        self.age = age
        self.gender = gender 
    def data_base_update(self):  
        passanger_list =  self.passangerNames + " " + self.nationalities + " " + self.age + "" + self.gender 
        
passangers_return = Passangers("fdgfdg", "dfgdfgdf", "dfgfdg", "dfgfdgff",)
print(passangers_return.data_base_update) 

错误:

<bound method Passangers.data_base_update of <__main__.Passangers object at 0x00000241A2467C70>> 

我明白了,但我没有收到打印消息

确保您确实调用了该方法。你这样做的方式,你只是在引用函数对象。相反,print(passangers_return.data_base_update())

另外,如果你想从函数中得到passanger_list,在函数的底部添加return passanger_list。或者,您可以直接 return 字符串,方法是将分配给 passanger_list 的字符串连接直接放在 return 之后。要继续,您应该使用 f-strings。它们允许您在字符串中嵌入变量和表达式:例如 return f"{self.x=}"

针对您的情况:

def data_base_update(self):
    return f"{self.passangerNames} {self.nationalities} {self.age} {self.gender}"

专业提示

您可以使用__str__(或__repr__)来显示对象的字符串表示形式!

def __str__(self):
    return f"{self.passangerNames} {self.nationalities} {self.age} {self.gender}"

现在您只需将保存实例的变量传递给 print 并从 __str__(或 __repr__)获取 return 值作为输出!