Python中的类定向对象错误?

时间:2017-11-28 23:16:54

标签: python-3.x

我的代码遇到了一些问题,你看我是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'

1 个答案:

答案 0 :(得分:3)

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

roscoe.sleep(4)

而不是

roscue.sleep(4)

因为我认为你是Python的初学者,所以给予更多背景。 Python解释器(&#34;程序&#34;运行Python代码)的回溯告诉你发生了什么。在这种情况下,它表示&#34; name&#r; roscue&#39;未定义&#34;。这通常是语法错误。有时它可能意味着您还没有定义该功能。但在这种情况下,它是前者。

另外,再往前走一点,你可能会收到缩进错误。在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)