首页 > 解决方案 > 有没有办法从它的一个属性中检索一个 python 对象?(Python)

问题描述

我是一个制作不和谐机器人的初学者,对于一个命令,我有对象及其遇到的机会,使用以下格式:

chances = 5, 5
objects = array[0].name, array[1].name
location = [v for v, d in zip(objects, chances) for i in range(d)]
for i in range(1):
    print(random.choice(location))

我想将对象保存为要在另一个命令中使用的变量,特别是访问另一个属性以获取信息。但是,由于对象使用它的一个属性,而不是对象本身,我想知道在 python 中是否可以从它的一个属性中检索对象,在我的例子中是名称,其中没有对象具有相同的名称。我也对替代解决方案持开放态度,作为初学者,我相信还有其他解决方案可能更有效

标签: pythondiscord

解决方案


我不相信这是可能的。但是,您可以创建一个按该名称引用对象的字典。像这样

chances = 5, 5
objects = array[0].name, array[1].name
object_name_to_object = {}
for val in array:
     object_name_to_object[val.name] = val
location = [v for v, d in zip(objects, chances) for i in range(d)]
for i in range(1):
     objct= object_name_to_object[random.choice(location)]
print(objct)

或者根本不使用这个名称:

chances = 5, 5
objects = array[0], array[1]
location = [v for v, d in zip(objects, chances) for i in range(d)]
for i in range(1):
      print(random.choice(location))

推荐阅读