【问题标题】:Is it possible to automatically create instances inside a for loop?是否可以在 for 循环中自动创建实例?
【发布时间】:2018-04-10 21:26:29
【问题描述】:

问:是否可以在 for 循环中自动创建实例:

Main.py:

from Car import Car

car_list = [
    ['red', 555, 123.04],
    ['black', 666, 203.04],
    ['green', 111, 23.04],
    ]

cars = Car()


new_car_list = []

for line in car_list:
    new_car_list.append(cars.foo(line))

Car.py

class Car:
    def __init__(self):
        self.number = int()
        self.color = str()
        self.price = float()

    def foo(self, line):
        for attribute in line:
            if isinstance(attribute,int):
                self.number = attribute
            elif isinstance(attribute, str):
                self.color = attribute
            elif isinstance(attribute, float):
                self.price = attribute
        return self

输出:

for car in new_car_list:
    print(car.number)

111

111

111

如您所见,我有一个具有一些属性的 Car 类。 在我的主文件中,我有一张卡片列表。 我的目标是: 1)能够为每辆汽车创建一个实例,并将其附加到一个包含dict的新列表中,hey key是程序生成的id号,value是汽车的实例。 最后,我希望能够使用字典的键访问实例属性。

有可能吗?

谢谢!

【问题讨论】:

标签: python python-3.x oop instance


【解决方案1】:

相同的汽车对象cars 每次都在for 循环中更新和附加。你可以这样做:

new_car_list = []

for line in car_list:
    car = Car()
    new_car_list.append(car.foo(line))

【讨论】:

  • 谢谢!我讨厌使用类来初始化方法中的变量,但它确实解决了我的问题!
猜你喜欢
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 2021-04-09
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多