Python分类方法

2024-09-29 23:15:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,正在学习Python课堂上可以使用的基本方法。 我有一个家庭作业问题,我真的不知道怎么解决,所以我想知道你是否能帮我解决这个问题。 问题是:

class Doughnut:
    categories = ['cakey', 'doughy']
    def __init__(self, category, flavor):
        if category not in Doughnut.categories:
            self.category = 'doughy'
        else:
            self.category = category
        self.flavor = flavor

    def ___________:
        return self.category + " " + self.flavor + "doughnuts" 

d = Doughnut('cakey', 'bacon')
print("I want 2 " + str(d) + "s please!") # I want 2 cakey bacon doughnuts please!
我需要知道在第二个“DEF”和“”之间的空白语句中应该写什么。 提前谢谢!你知道吗


Tags: 方法selfdefcategoriesbaconplease课堂category
3条回答

您需要__str__()方法。下面是一个完整的工作实施。你知道吗

class Doughnut:
  categories = ['cakey', 'doughy']


  def __init__(self, category, flavor):
    if category not in Doughnut.categories:
        self.category = 'doughy'
    else:
        self.category = category
    self.flavor = flavor


  def __str__(self):
    return self.category + " " + self.flavor + " doughnuts"


d = Doughnut('cakey', 'bacon')
print("I want 2 " + str(d) + "s please!")

您要寻找的是magic methods:当python被要求做一些非常重要的事情时,它会在类中搜索其中一个来查看如何做。你知道吗

在您的特定情况下,有两种方法可以将类转换为字符串,str()将尝试在幕后使用它们:

  • __str__应该返回一个可读的表示
  • __repr__应该返回一个明确的表示

有关更多详细信息,请参阅this post。你知道吗

所以我建议:

def __str__:
    return self.category + " " + self.flavor + "doughnuts" 

question中包含的两个答案都可以。你知道吗

您可以使用def __repr__(self):def __str__(self):

相关问题 更多 >

    热门问题