Python中的类定向对象错误?

问题描述 投票:-1回答:1

我的代码遇到了一些问题,你看我是python编程的初学者,所以我不明白所有错误,所以我很乐意在下面提供帮助,代码是我已经密集检查的只是为了找到错误:

class Animal(object):
def __init__(self,legs,name):
    def sleep(self,hours):
        print("%s is sleeping for %d hours!" % (self.name,hours))
    self.legs = legs
    self.name = name
roscoe = Animal(4, "Canis Lupus Familiaris")
roscoe.name = ("Roscoe")
roscoe.sleep(4)

这是错误:

Traceback (most recent call last):
File "class.py", line 9, in <module>
roscoe.sleep(4)
AttributeError: 'Animal' object has no attribute 'sleep'
python-3.x
1个回答
3
投票

您在最后一行中有语法错误。它应该是:

roscoe.sleep(4)

代替

roscue.sleep(4)

因为我认为你是Python的先锋,所以给出了更多的背景。 Python解释器(运行Python代码的“程序”)的回溯告诉你发生了什么。在这种情况下,它表示“名称'roscue'未定义”。这通常是语法错误。有时它可能意味着您没有定义该功能。但在这种情况下,它是前者。

此外,进一步,你可能会得到缩进的错误。在Python中,您必须使用制表符或空格缩进要放在一起的每个块。

最后,想想你的功能,你必须把它们整理好。 Init是一个函数,sleep是另一个函数,所以在每个函数之后你都有一个块。不同的块应分别缩进。这是代码的外观,但修改它而不是盲目地运行它。

class Animal(object):
  def __init__(self,legs,name):
    self.legs = legs
    self.name = name
  def sleep(self,hours):
    print("%s is sleeping for %d hours!" % (self.name,hours))

roscoe = Animal(4, "Canis Lupus Familiaris")
roscoe.name = ("Roscoe")
roscoe.sleep(4)
© www.soinside.com 2019 - 2024. All rights reserved.