在循环中迭代创建 class 个实例
Creating class instances iteratively in loop
我想使用 for 循环创建 class 的多个实例,并为它们指定不同的名称:
robot_list = []
for i in range(10):
robot_list.append(robot + str(i) = BasicNavigator())
这不起作用,目前,我正在这样做:
robot_list = []
robot0 = BasicNavigator()
robot_list.append(robot0)
robot1 = BasicNavigator()
robot_list.append(robot1)
robot2 = BasicNavigator()
robot_list.append(robot2)
但我想让它更有活力,所以我选择例如7个机器人,它创建7个实例,你知道吗?
有什么办法吗?
由于您希望将实例与该实例的名称一起存储,因此使用字典是最佳选择。
这可以帮助您创建所需数量的实例并将它们存储在列表中。
class Robot():
def talk(self):
return "Hi, I am a robot"
robots_num = 7
robots = {}
for i in range(robots_num):
robots[f"robot_{i}"] = Robot()
print(robots["robot_0"].talk())
输出-
Hi, I am a robot
我想使用 for 循环创建 class 的多个实例,并为它们指定不同的名称:
robot_list = []
for i in range(10):
robot_list.append(robot + str(i) = BasicNavigator())
这不起作用,目前,我正在这样做:
robot_list = []
robot0 = BasicNavigator()
robot_list.append(robot0)
robot1 = BasicNavigator()
robot_list.append(robot1)
robot2 = BasicNavigator()
robot_list.append(robot2)
但我想让它更有活力,所以我选择例如7个机器人,它创建7个实例,你知道吗?
有什么办法吗?
由于您希望将实例与该实例的名称一起存储,因此使用字典是最佳选择。
这可以帮助您创建所需数量的实例并将它们存储在列表中。
class Robot():
def talk(self):
return "Hi, I am a robot"
robots_num = 7
robots = {}
for i in range(robots_num):
robots[f"robot_{i}"] = Robot()
print(robots["robot_0"].talk())
输出-
Hi, I am a robot