【问题标题】:What am i doing wrong in creating and calling this simple class function?我在创建和调用这个简单的类函数时做错了什么?
【发布时间】:2021-06-16 23:30:26
【问题描述】:
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    def vol(self):
        return width * height

w = int(input())
h = int(input())

obj = Rectangle(w, h)

obj.vol()

我收到一条错误消息,提示“宽度”未定义?

【问题讨论】:

  • 请提供完整代码
  • 你可能需要写self.width(而不仅仅是width),因为宽度是实例的一个变量。

标签: python function class


【解决方案1】:

你需要让它返回对象的宽度和高度,因为它是一个类方法。 您可以使用“self”来引用类的实例

class SomeClass():

  def __init__(self, width, height):
     self.width = width
     self.height = height

  def vol(self):
     return self.width * self.height

【讨论】:

  • 第三行和第四行也是self
  • 那么,如果我不能将其称为“宽度”,那么在 init 函数中写“self.width = width”和“self.height = height”有什么意义呢?
  • @MuhammedJaseem 如果你指的是 init 函数中的其他 'width' 和 'height' ,它们是指 init 函数的参数,前面不需要 self 。
  • @snoopaloop 因为宽度和高度可能真的意味着什么。在 init 方法中,您使用 self.something 定义实例的属性。您使用 self 来表明它仅适用于该类的实例。
  • 哦,我的错
猜你喜欢
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多