我正在使用 graphics.py 库,需要根据用户想要的数量创建多个多边形(比如说 4 个)。
我只需要知道如何为每个多边形创建一个唯一的名称,例如多边形 1、多边形 2、多边形 4、多边形 5。
谢谢。
我正在使用 graphics.py 库,需要根据用户想要的数量创建多个多边形(比如说 4 个)。
我只需要知道如何为每个多边形创建一个唯一的名称,例如多边形 1、多边形 2、多边形 4、多边形 5。
谢谢。
如果你真的想这样做,你可以:
for i in range(count):
new_poly = Polygon(whatever)
new_name = 'polygon{}'.format(i+1)
然后,您必须将新名称和新多边形存储在某处。也许是这样的:
polygons = {}
for i in range(count):
new_poly = Polygon(whatever)
new_name = 'polygon{}'.format(i+1)
polygons[new_name] = new_poly
如果您认为您宁愿将每个名称都设为一个新变量……那是个坏主意。您不想动态创建变量,因为您希望将数据保留在变量名之外。
真的,这里根本不需要名字。这将创建一个count
多边形列表:
polygons = [Polygon(whatever) for _ in range(count)]
现在,如果您需要按号码访问它们,只需执行以下操作:
polygons[2]
(尽管请注意列表是基于 0 的,而不是基于 1 的)。
或者,如果您需要访问所有这些,您已经获得了整个列表,因此您不必(polygon1, polygon2, polygon3, polygon4)
到处写;只是polygons
。
坏方法:
您可以使用exec
.
for i in range(5):
exec("polygon%d = Polygon(something)"%i)
这是非常安全的,因为i
if 只是一个整数。但是使用exec
是一种非常糟糕的做法,因为它非常脆弱。用户可以输入或意外输入一段代码并弄乱您的记忆。所以,除非你真的必须这样做,否则你不应该使用它。
另外,如果你是全局变量的粉丝,你可以使用它。
globals()["polygon%d"%i] = Polygon(something)
但是也不建议经常使用全局变量。
更好的方式
或者,您可以将其存储在列表或字典中:
for i in range(5):
lst.append(Polygon(something_else)) #store it in a list
dict['polygon%d'%i] = Polygon(another_thing) #store it in a dict
希望这可以帮助!!
您可以将其作为列表处理
polygon = []
polygon.append(...)
并以
polygon[2]