在 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
例如,如果我有:
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