python – 如何创建对象,然后在循环中将方法应用于它们
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何创建对象,然后在循环中将方法应用于它们,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2125字,纯文字阅读大概需要4分钟。
内容图文
![python – 如何创建对象,然后在循环中将方法应用于它们](/upload/InfoBanner/zyjiaocheng/750/45ba0a6a8b7a4a17ba76e9eaf816f39f.jpg)
我使用pygame在python中创建了一个noughts和crosses的版本,完成的游戏结果比预期好得多,我对它很满意.但是,代码似乎非常混乱,我想稍微清理一下.为了使代码工作,我创建了9个我编写的精灵类的对象.但是每当我需要对它们应用一个方法时,我必须将相同的行写出九次,只有一个数字不同.为了解决这个问题,我想知道我是否可以为九个对象中的每个对象运行相同的脚本.该程序首先创建对象:
board_0 = classes.sprite.Sprite(x = 250, y = 200)
board_0.set_image('board.png')
board_1 = classes.sprite.Sprite(x = 350, y = 200)
board_1.set_image('board.png')
board_2 = classes.sprite.Sprite(x = 450, y = 200)
board_2.set_image('board.png')
board_3 = classes.sprite.Sprite(x = 250, y = 300)
board_3.set_image('board.png')
board_4 = classes.sprite.Sprite(x = 350, y = 300)
board_4.set_image('board.png')
board_5 = classes.sprite.Sprite(x = 450, y = 300)
board_5.set_image('board.png')
board_6 = classes.sprite.Sprite(x = 250, y = 400)
board_6.set_image('board.png')
board_7 = classes.sprite.Sprite(x = 350, y = 400)
board_7.set_image('board.png')
board_8 = classes.sprite.Sprite(x = 450, y = 400)
board_8.set_image('board.png')
是否可以使用for循环来创建这些只需几行而不是这里需要的十八行.同样的解决方案有望在代码的其他地方工作,我有两个部分,每个对象重复九次:
if board_0.mouse_hover() and grid[0] == 0:
if turn == 0: board_0.set_image('cross.png')
elif turn == 1: board_0.set_image('nought.png')
else:
if grid[0] == 0: board_0.set_image('board.png')
if board_0.mouse_click() and grid[0] == 0:
if turn == 0:
board_0.set_image('cross.png')
grid[0] = 'X'
turn = 1
elif turn == 1:
board_0.set_image('nought.png')
grid[0] = 'O'
turn = 0
只是对于那些想知道我在代码的开头设置网格的人:grid = [0,0,0,0,0,0,0,0,0]那么可以做些什么来实现我想要的结果,我相信我过去曾遇到过这个问题,但我不知道Stack Overflow,所以如果实际上有解决方案,我也会更新其他程序.
解决方法:
您可以使用列表推导并迭代您的参数来创建Sprite的所有实例.
from itertools import product
x_coords = [250, 350, 450]
y_coords = [200, 300, 400]
boards = [classes.sprite.Sprite(x=x, y=y) for x, y in product(x_coords, y_coords)]
for board in boards:
board.set_image('board.png')
board_0因此成为板[0].使用itertools.product只是写出你的示例中的x,y对的简称.
内容总结
以上是互联网集市为您收集整理的python – 如何创建对象,然后在循环中将方法应用于它们全部内容,希望文章能够帮你解决python – 如何创建对象,然后在循环中将方法应用于它们所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。