看起来像这样:

我定义一个类:

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,则此方法不起作用。在这种情况下,您可以让每个词典条目都包含一个listBoys并找到其他一些参数来区分相同名称的Boy

10-06 05:20