在 Python 中有没有办法找到哪个对象具有特定属性?

In Python is there a way to find which object has a specific attribute?

例如,如果我有:

class person:
    def __init__(self, name, age, address=None):
        self.name = name
        self.age = age
        self.address = address

person1 = person("Julie", 32)
person2 = person("Jack", 41)
person3 = person("John", 28)

我想查找 32 岁的人。 有办法吗?

有什么特殊要求吗?否则,为什么不循环它来找人呢?

persons = [person1, person2, person3]
results = []

for p in persons:
    if p.age == 32:
        results.append(p)

for p in results:
    print(p.name, p.age)

输出:

Julie 32

在 Python 中(默认情况下)class 变量是 public.
所以要找出哪个人的年龄是 32.
遵循克里斯托弗的守则。这回答了你的问题

Python

中的私有修饰符
# program to illustrate private access modifier in a class 
  
class Student: 
     
     # private members 
     __name = None
     __roll = None
     __branch = None
  
     # constructor 
     def __init__(self, name, roll, branch):   
          self.__name = name 
          self.__roll = roll 
          self.__branch = branch 

Python

中的受保护修饰符
# program to illustrate protected access modifier in a class 
class Student: 
     
     # protected data members 
     _name = None
     _roll = None
     _branch = None
     
     # constructor 
     def __init__(self, name, roll, branch):   
          self._name = name 
          self._roll = roll 
          self._branch = branch