如何使用 __str__ 函数来 return class 的字符串表示

How to use __str__ function to return a string representation of a class

我的任务是在 python 中创建库存管理器,其中一项要求是在 class 中定义以下函数:

__str__ - 此函数 returns 的字符串表示形式 class.

class 指的是具有以下格式的文件 (inventory.txt): 国家、代码、产品、成本、数量

到目前为止我的代码如下:

# Creating the class:

class Shoes():

    # Constructor:
    def __init__(self,country,code,product,cost,quantity):
        self.country = country
        self.code = code
        self.product = product
        self.cost = cost
        self.quantity = quantity
    
    # Methods:
    def get_cost():

        inventory = open('inventory.txt','r')
        inventory_list = inventory.readlines()

        code = input("What is the code of the product:")

        for line in inventory_list:
            split_lines = line.split(",")
            if code == split_lines[1]:
                print("This product costs R{}".format(split_lines[3]))
                inventory.close()
    
    def get_quantity():
        inventory = open('inventory.txt','r')
        inventory_list = inventory.readlines()

        code = input("What is the code of the product:")

        for line in inventory_list:
            split_lines = line.split(",")
            if code == split_lines[1]:
                print("There are {} units in inventory".format(split_lines[4]))
                inventory.close()
    
    def __str__(self):
        pass

我还没有遇到过 str 所以我真的不确定它是如何工作的,以及如何使用它。任何建议将不胜感激。

这是一个例子:

def __str__(self):
    return f'{self.self.country},{self.self.code},{self.self.product}, {self.cost},{self.quantity })'

这样,当您为 class 赋值时,您可以打印其字符串表示形式

print(new_shoe)

这里有更多信息 https://www.pythontutorial.net/python-oop/python-str/