我尝试使用Python2.7.9创建一个类,但它总是出错
这是我的剧本:
class Hero():
def __init__(self, name):
self.health=50
def eat(self, food):
if(food=='apple'):
self.health+=10
self.name=Jeff
Jeff=Hero('Jeff')
def introduce(self, name):
print Jeff.name
def checkAtt():
print Jeff.health
introduce()
它一直在说name 'Jeff' is not defined
你的代码有很多问题。第一个导致特定错误的原因是您试图分配:
在定义
self
或Jeff
之前self
通常只在实例方法内部使用(比如Hero.eat
),其中它是第一个参数的名称其次,您的
Hero.__init__
实际上并没有将name
参数赋给name
属性;它应该看起来像:jeff = Hero("Jeff")
将调用Hero.__init__
,创建新的Hero
实例,将其name
属性设置为"Jeff"
(将health
属性设置为50
),并将该实例分配给名称jeff
第三,您有两个独立函数(
introduce
和checkAtt
),它们可能也是实例方法:或者,如果仍然是独立的函数,就使用一个参数
Hero
实例来操作(按照惯例,它不应该被称为self
)-编写一个只在名称Jeff
可用的范围内运行的函数没有多大意义注意这两种不同情况下的缩进在Python中非常重要。另外,请注意调用
introduce
的不同方式,这取决于它是实例方法还是函数我建议你读the tutorial on classes和the style guide
相关问题 更多 >
编程相关推荐