python - Python OOP 输出错误,有什么想法吗?
问题描述
我在一个更大的项目上工作,我遇到了这个问题。为什么这个输出是 2,3 而不是 2,2?
class Pos:
def __init__(self):
self.x = 1
self.y = 0
class Snake:
snake = []
def __init__(self):
for h in range(0, 100):
self.snake.append(Pos())
def add(self):
self.snake[0].x += 1
print(self.snake[0].x)
snakes = []
j = 2
for i in range(0, j):
snakes.append(Snake())
for i, snk in enumerate(snakes):
snakes[i].add() # || snk.add()
解决方案
使snake
列表成为对象属性应该可以解决问题。
class Pos:
def __init__(self):
self.x = 1
self.y = 0
class Snake:
def __init__(self):
self.snake = []
for h in range(0, 100):
self.snake.append(Pos())
def add(self):
self.snake[0].x += 1
print(self.snake[0].x)
Snakes = []
j = 2
for i in range(0, j):
Snakes.append(Snake())
for i, snk in enumerate(Snakes):
Snakes[i].add() # || snk.add()
# print(Snakes[0].snake[0].x)
# print(Snakes[1].snake[0].x)
推荐阅读
- html - 如何测量带有空格的文本:画布上的预置?
- java - 如何将 Emoji 插件添加到 ZK 框架中使用的 CKEditor?
- javascript - 如何将活动类添加到当前元素?
- r - 整洁的诗句
- android - Android Studio:通过 FileProvider 共享文件错误 E/FilePathConverter resolveFilePath Couldn't read row 0, col -1 from CursorWindow
- java - 怎么能很快写在changeValue函数下面?
- macos - Qemu:在 MacOS X 上使用 Buster OS 模拟 Raspberry pi(CLI 有效,但屏幕空白)
- dagger-2 - 匕首子组件构建器可以设置数据(模块除外)吗?
- c++ - 对 aruco 函数的未定义引用
- python - OpenCV - 轮廓未检测到 jpg 中的正方形