看起来像这样:
我定义一个类:
class Boy():
def __init__(self):
self.age = input()
self.height = input()
然后我定义一个列表,其中包含我希望成为上述“男孩类”的对象实例的男孩的名字:
boys = [input(), input()]
(例如:john & Frank,因此男孩 = ['john', 'frank'])
我现在想迭代我的列表“男孩”并使用每个名称来创建“男孩类”的对象:
for value in boys:
value = Boy()
当然,它不起作用:-)但是有没有办法实现它? 我已经使用 Python 1 周了,如果这个问题听起来很愚蠢:-) 如果有人可以帮助我,我将非常感激
感谢大家的帮助,我实现了建议的解决方案:
thank_you_people = ['Makoto','L3viathan','Rcynic','Pythonic','Paul Rooney', 'st.eve']
:-)
for person in thank_you_people:
print('Thank you, %s' % person)
最佳答案
我强烈建议对您的类进行一些更改,以从构造函数中删除 input()
调用。您可以使用一种 __init__
方法,该方法具有年龄和高度的可选参数以及名称的强制参数:
class Boy():
def __init__(self, name, age=None, height=None):
self.age = age
self.height = height
self.name = name
然后您可以使用名称进行实例化,并稍后分配属性:
boys = [Boy(input("New boy: ")), Boy(input("New boy: "))] # e.g. "John", "Frank"
for boy in boys:
boy.age = input("Age of",boy.name + "?")
boy.height = input("Height of",boy.name + "?")
编辑:将男孩放入字典中以便于访问:
boys = {}
for _ in range(2):
name = input("New boy:")
boys[name] = Boy(name)
for boy in boys:
boys[boy].age = input("Age of",boys[boy].name + "?")
boys[boy].height = input("Height of",boys[boy].name + "?")
关于python - 使用/执行列表中的字符串作为对象名称(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784265/