python未定义名称_未定义python namerror名称

我无法弄清楚为什么我会收到此错误.我的代码是这样的

#define the Animal Class

class Animal:

def __init__ (self, animal_type, age, color):

self.animal_type = animal_type

self.age = age

self.color = color

def makeNoise():

pass

def __str__(self):

print ("% is % years old and is %" % animal_type,age, color)

#define child classes of Animal

class Wolves(Animal):

def __init__(self, animal_type, age, color, wild):

Animal.__init__(self, animal_type, age, color)

self.wild = wild

def __str__(self):

print ("% is % years old and is % and is %" % (animal_type, age, color, wild))

class Bear(Animal):

def __init__ (self, animal_type, age, color, sex):

self.sex = sex

Animal.__init__(self,animal_type, age, color)

class Moose(Animal):

def __init__(self, animal_type, age, color, antlers):

self.antlers = antlers

Animal.__init__(self, animal_type, age, color)

#add items to each class

wally = Wolves("wolf", 4, "grey","wild")

sally = Wolves("wolf", 3, "white", "tame")

print (str(sally))

print (str(wally))

完整的追溯是

Traceback (most recent call last):

File "//mgroupnet.com/RedirectedFolders/SBT/Documents/bear51.py", line 41, in

print (str(sally))

File "//mgroupnet.com/RedirectedFolders/SBT/Documents/bear51.py", line 24, in __str__

print ("% is % years old and is % and is %" % (animal_type, age, color, wild))

NameError: name 'animal_type' is not defined

我究竟做错了什么?

最佳答案 哦 – 基本上你只是忘了在__str__方法中使用self.animal_type.像这样:

def __str__(self):

print ("%s is %s years old and is %s" % self.animal_type,self.age, self.color)

就像在__init__中一样,要使用实例化类中的变量,您需要使用“self”,就像“从我正在处理的动物实例中”一样.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值