首页 > 解决方案 > 我可以在 Python 中使用变量引用类实例吗?

问题描述

我有一个类实例列表,我想使用在运行时设置的变量来检查列表中的特定实例是否在列表中。

class Animal():
    def __init__(self, name):
        self.name = name

cat = Animal('cat')
dog = Animal('dog')
fish = Animal('fish')

animals = [cat, dog, fish]

assert dog in animals # True

target = 'dog'
assert target in animals # Error

这可以做到吗?

标签: python

解决方案


dog是 Animal 类的一个实例。

您可以尝试遍历每个类并.name像这样获取和比较:

class Animal():
    def __init__(self, name):
        self.name = name

cat = Animal('cat')
dog = Animal('dog')
fish = Animal('fish')

animals = [cat, dog, fish]

assert dog in animals # True

target = 'dog'

for class_obj in animals:
    print(target == class_obj.name)

推荐阅读