使用循环创建多个唯一类 (Python)

马里奥8494

你好。我正在尝试使用循环创建对象的多个唯一实例。这是我的代码:

class Person: 
    def __init__(self, name, age, hobby, instrument):
        self.name = name
        self.age = age
        self.hobby = hobby
        self.instrument = instrument

    def printInfo(self): 
        print(f"Name: {self.name}\nAge: {self.age}\nHobby: {self.hobby}\nInstrument: {self.instrument}")  
        print() 

names = ["Adonis", "Michael", "George", "Towney", "Katrina", "Slestria", "Harry"]
ages = [17, 18, 16, 16, 17, 18, 16]
hobbies = ["Karate", "Music", "Knitting", "Programming", "Skiing", "Egging homes", "Doing magic"]
instruments = ["Alto saxophone", "Clarinet", "Oboe", "Trombone", "Flute", "Trumpet", "Percussion"]

而不必执行以下操作:

p1 = Person("Adonis", 17, "Karate", "Alto saxophone") 
p2 = Person("Michael", 18, "Music", "Clarinet") 
p3 = Person("George", 16, "Knitting", "Oboe") 
.
.
.

我想知道是否有更简单的方法。最后,我希望能够对所有对象执行此操作:

p3.printInfo() 

Name: George 
Age: 16 
Hobby: Knitting 
Instrument: Oboe 

我不知道这是否可能。我对类和对象还是陌生的,所以非常感谢一些批评和正确方向的踢!

DYZ

将人员分配给各个变量是一个主意。您可以使用列表推导构建人员列表:

persons = [Person(*info) for info in zip(names, ages, hobbies, instruments)]

在这里,zip(...)将您的四个列表组合成一个 4 元素元组列表。列表中的每个元组作为四个单独的参数依次传递给构造函数(*将四个项目的元组转换为四个参数)。

persons[3].printInfo()
#Name: Towney
#Age: 16
#Hobby: Programming
#Instrument: Trombone

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章