- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在关注a tutorial但不断收到以下错误AttributeError:蠕虫实例没有属性“move”
我不确定这到底意味着什么或如何解决它。该错误指向底部的第 44 行,该行是 w.move()
(此问题已解决,请看下面)
import pygame
class Worm:
"""A Worm."""
def __init__(self, surface, x, y, length):
self.surface = surface
self.x = x
self.y = y
self.length = length
self.dir_x = 0
self.dir_y = -1
self.body = []
self.crashed = False
def key_event(self, event):
"""Handle Key events that affect the worm."""
if event.key == pygame.K_UP:
self.dir_x = 0
self.dir_y = -1
elif event.key == pygame.K_DOWN:
self.dir_x = 0
self.dir_y = 1
elif event.key == pygame.K_DOWN:
self.dir_x = -1
self.dir_y = 0
elif event.key == pygame.K_DOWN:
self.dir_x = 1
self.dir_y = 0
def draw(self):
for x, y in self.body:
self.surface.set_at((x, y), (255, 255, 255))
width = 640
height = 400
screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
running = True
w = Worm(screen, width/2, height/2, 200)
while running:
screen.fill((0, 0, 0))
w.move()
w.draw()
if w.crashed or w.x <= 0 or w.x >= width -1 or w.y <= 0 or w.y >= height -1:
print "crash"
running = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
w.key_event(event)
pygame.display.flip()
clock.tick(240)
----------改变--------
代码:
import pygame
class Worm:
"""A Worm."""
def __init__(self, surface, x, y, length):
self.surface = surface
self.x = x
self.y = y
self.length = length
self.dir_x = 0
self.dir_y = -1
self.body = []
self.crashed = False
def key_event(self, event):
"""Handle Key events that affect the worm."""
if event.key == pygame.K_UP:
self.dir_x = 0
self.dir_y = -1
elif event.key == pygame.K_DOWN:
self.dir_x = 0
self.dir_y = 1
elif event.key == pygame.K_DOWN:
self.dir_x = -1
self.dir_y = 0
elif event.key == pygame.K_DOWN:
self.dir_x = 1
self.dir_y = 0
def draw(self):
for x, y in self.body:
self.surface.set_at((x, y), (255, 255, 255))
def move(self):
"""move worm."""
self.x += self.vx
self.y += self.vy
if (self.x, sel.y) in self.body:
self.crashed = True
self.body.insert(0, (self.x, self.y))
if len(self.body) > self.length:
self.body.pop()
def draw(self):
#for x, y self.body:
# self.surface.set_at((x, y),self.color)
x, y = self.body[0]
self.surface.set_at((x, y), self.color)
x, y = self.body[-1]
self.surface.set_at((x, y), (0, 0, 0))
width = 640
height = 400
screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
running = True
w = Worm(screen, width/2, height/2, 200)
while running:
screen.fill((0, 0, 0))
w.move()
w.draw()
if w.crashed or w.x <= 0 or w.x >= width -1 or w.y <= 0 or w.y >= height -1:
print "crash"
running = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
w.key_event(event)
pygame.display.flip()
clock.tick(240)
和错误 -
Traceback (most recent call last):
File "C:/Users/Enrique/Dropbox/Public/snakegametutorial.py", line 65, in <module>
w.move()
File "C:/Users/Enrique/Dropbox/Public/snakegametutorial.py", line 34, in move
self.x += self.vx
AttributeError: Worm instance has no attribute 'vx'
最佳答案
AttributeError
表示您试图访问对象的类定义中未定义的属性或方法。
看来您在教程代码中还没有取得足够的进展来定义 Worm.move()
方法。它出现在教程的第 43 行,就在 Worm.draw()
之前。您将在 draw()
方法上遇到另一个 AttributeError
,因为您还没有定义该错误。只需将这两个添加到 Worm
类定义中即可。
43 def move(self):
44 """ Move the worm. """
45 self.x += self.vx
46 self.y += self.vy
47
48 if (self.x, self.y) in self.body:
49 self.crashed = True
50
51 self.body.insert(0, (self.x, self.y))
52
53 if (self.grow_to > self.length):
54 self.length += 1
55
56 if len(self.body) > self.length:
57 self.body.pop()
58
59 def draw(self):
60 #for x, y in self.body:
61 # self.surface.set_at((x, y), self.color)
62 x, y = self.body[0]
63 self.surface.set_at((x, y), self.color)
64 x, y = self.body[-1]
65 self.surface.set_at((x, y), (0, 0, 0))
更新
您现在在 Worm.vx
上收到 AttributeError
,因为您缺少 中的该属性(还有
。将您的代码与教程页面上改进的游戏标题下的代码进行比较。当您遇到更多错误时,请将您的类定义与教程的进行比较。vy
)蠕虫.__init__()
添加到__init__()
def __init__(self, surface):
...
...
self.vx = 0
self.vy = -1
...
...
关于python - 错误消息 -(AttributeError : Worm instance has no attribute 'vx' ) mean and how can i fix it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856843/
我遇到了这两个错误,“AttributeError:在 DataLoader 工作进程 0 中捕获 AttributeError”,“AttributeError:模块“torchvision.tra
以下是我的代码。在最后一行中,我无法将Items[node.ind].v值设置为我想要的node.v,并收到错误。我不知道出了什么问题,但一定是基于语法,因为使用node.v+=1这样的语句也会显示相
我们准备了以下python脚本来显示word表格中的图片。 import matplotlib.pyplot as plt import pylab import win32com.client as
我需要一种方法来获取 TensorFlow 中任何类型层(即 Dense、Conv2D 等)的输出张量的形状。根据文档,有 output_shape 属性可以解决这个问题。但是,每次我访问它时,我都会
除了我之前的问题,关于如何在 Python 中打开 csv 文件,我仍然没有成功地做到这一点,并且从一个错误到另一个错误。 我的Python代码如下: @app.route("/admin", met
这是我在Google Colab中使用的代码。当我打这些电话的时候。我收到以下错误。这很奇怪。我以前从来没有见过这个问题。有没有人能帮我一下?我是不是做错了什么?
我想将Excel中的数据添加到词典中。但是,当我使用.append(TOTAL_SALES)时出现错误,当然,如果我使用+=TOTAL_SALES,则没有问题,只是我获得的是总和,而不是3个单独月份的
我想将Excel中的数据添加到词典中。但是,当我使用.append(TOTAL_SALES)时出现错误,当然,如果我使用+=TOTAL_SALES,则没有问题,只是我获得的是总和,而不是3个单独月份的
我正在尝试使用 gr_modtool.py 在 gnuradio 中创建一个新的 DSP 模块。 gnuradio 版本是 3.3.0。我在 include 文件夹中的 abc.h 文件中有以下代码
AttributeError:尝试在序列化器 UserKeywordSerializer 上获取字段 user 的值时出现 AttributeError。序列化程序字段可能命名不正确,并且与 Quer
我有以下使用Chatterbot第三方库的代码:。当我尝试使用代码时,从Visual Studio收到如下错误:。我安装了以下程序包:。我尝试了使用Python3.9和3.11以及Chatterbot
我有以下使用Chatterbot第三方库的代码:。当我尝试使用代码时,从Visual Studio收到如下错误:。我安装了以下程序包:。我尝试了使用Python3.9和3.11以及Chatterbot
我有以下使用Chatterbot第三方库的代码:。当我尝试使用代码时,从Visual Studio收到如下错误:。我安装了以下程序包:。我尝试了使用Python3.9和3.11以及Chatterbot
通常,当我尝试使用BeautifulSoup解析网页时,BeautifulSoup函数会得到NONE结果,否则就会引发AttributeError。。以下是一些独立的(即,由于数据是硬编码的,不需要访
通常,当我尝试使用BeautifulSoup解析网页时,BeautifulSoup函数会得到NONE结果,否则就会引发AttributeError。。以下是一些独立的(即,由于数据是硬编码的,不需要访
我试图配置预提交挂接,在运行预提交运行--所有文件时,我收到以下错误:。我已尝试升级pip以解决此问题pip安装--升级pip,但我收到另一个错误:。我尝试检查PIP和PIP3的版本,但现在我也收到了
我收到一个 AttributeError 我似乎无法解决。我正在处理两个类(class)。 第一个类就是这样。 class Partie: def __init__(self):
在 Django (1.4) 中迁移 South (0.7.5) 时,我遇到了这个错误。我最近将时区设置更改为 false,即 USE_TZ = False 以解决另一个问题。有任何想法吗?谢谢 ~/
当我尝试在两个序列化程序之间创建嵌套关系时出现 AttributeError。奇怪的是,我正在做与另一个 API 完全相同的事情,但这次我没有让它工作。这是代码: class UserSerializ
试图获得 manytomany django 中的关系,但我收到以下错误 - Got AttributeError when attempting to get a value for field n
我是一名优秀的程序员,十分优秀!