看起来像这样:
我定义一个类:
class Boy():
def __init__(self):
self.age = input()
self.height = input()
然后,定义一个列表,列出要成为上述“男孩类”的对象实例的男孩的名字:
boys = [input(), input()]
(例如:john&frank,因此boys = ['john','frank'])
现在,我要遍历列表“ boys”并使用每个名称将其作为“ class Boy”类的对象:
for value in boys:
value = Boy()
当然,它不起作用:-)但是有办法实现吗?
如果问题听起来很愚蠢,我从1周开始一直使用Python :-)
如果有人可以帮助我,将非常感激
谢谢大家的帮助,我实现了建议的解决方案:
thank_you_people = ['Makoto','L3viathan','Rcynic','Pythonic','Paul Rooney', 'st.eve']
:-)
for person in thank_you_people:
print('Thank you, %s' % person)
最佳答案
不要在input
方法中使用__init__
函数,因为它会限制Boy
类的使用方式。而是定义一个单独的函数来创建Boy
并将那些参数传递给您的Boy
构造函数。然后,您可以将Boy
存储在以男孩名称为键的dict
中。
例如
class Boy():
def __init__(self, age, height):
self.age = age
self.height = height
def __str__(self):
return 'age=%d height=%d' % (self.age, self.height)
def create_boy(name):
age = int(input('enter age for %s: ' % name))
height = int(input('enter height for %s: ' % name))
return Boy(age, height)
boynames = []
while(True):
name = input('enter boy name: ')
if name == '':
break
boynames.append(name)
boys = {}
for boyname in boynames:
boys[boyname] = create_boy(boyname)
for name, boyinfo in boys.items():
print('name=%s %s' % (name, boyinfo))
以后,您可以像这样查询特定的男孩名字
if 'paul' in boys:
print(boys['paul'].age)
print(boys['paul'].height)
else:
print('no boy called paul')
如果您可以使用具有相同名称的
Boy
,则此方法不起作用。在这种情况下,您可以让每个词典条目都包含一个list
的Boys
并找到其他一些参数来区分相同名称的Boy
。