Python 3.x 从python字符串列表创建多个对象

Python 3.x 从python字符串列表创建多个对象,python-3.x,list,oop,Python 3.x,List,Oop,如果我有一个列表aList=['Apple'、'Banana'、'Cherry'、'Date'],我想让列表中的每个项目都成为一个对象,例如,相当于Banana=AClass()。完成此操作后,我将能够为列表中的每个项目创建并调用self.anything 我该怎么做呢? 以下是我试图实现的基本目标: import random class Fruit: def __init__(self): self.tastiness = random.randint(1,10) f

如果我有一个列表
aList=['Apple'、'Banana'、'Cherry'、'Date']
,我想让列表中的每个项目都成为一个对象,例如,相当于
Banana=AClass()
。完成此操作后,我将能够为列表中的每个项目创建并调用
self.anything

我该怎么做呢?
以下是我试图实现的基本目标:

import random
class Fruit:
   def __init__(self):
        self.tastiness = random.randint(1,10)

fruits = ['Apple', 'Banana', 'Cherry', 'Date']
fruits[1] = Fruit()   # Creating a variable from the list
if Banana.tastiness < 5:
    print('Not tasty enough')
随机导入
水果类:
定义初始化(自):
self.tasty=random.randint(1,10)
水果=['苹果','香蕉','樱桃','日期']
水果[1]=水果()#从列表中创建变量
如果香蕉味<5:
打印('不够美味')

给定您的类和名称列表,您可以使用dict理解创建水果实例,并通过它们的名称合理访问它们:

fruits = ['Apple', 'Banana', 'Cherry', 'Date']
fruits = {k: Fruit() for k in fruits}

if fruits['Banana'].tastiness < 5:
    print('Not tasty enough')
水果=['苹果'、'香蕉'、'樱桃'、'日期']
水果={k:Fruit()表示水果中的k}
如果水果[‘香蕉’],口感<5:
打印('不够美味')

虽然可以创建具有动态名称的变量(这样您的
Banana.tasty
就可以了),但我强烈建议您不要这样做。

给定您的类和名称列表,您可以使用dict理解创建水果实例,并通过它们的名称合理访问它们:

fruits = ['Apple', 'Banana', 'Cherry', 'Date']
fruits = {k: Fruit() for k in fruits}

if fruits['Banana'].tastiness < 5:
    print('Not tasty enough')
水果=['苹果'、'香蕉'、'樱桃'、'日期']
水果={k:Fruit()表示水果中的k}
如果水果[‘香蕉’],口感<5:
打印('不够美味')

虽然可以创建具有动态名称的变量(这样您的
Banana.tasty
就可以了),但我强烈建议您不要这样做。

IIUC,这就是您想要做的:

使用字符串作为键:

dfruits = {}
for f in fruits:
    dfruits[f] = Fruit()
听写理解风格

dfruits = {i: Fruit() for i in fruits}
对dict使用整数键:

dfruits = {}
for i,f in enumerate(fruits):
    dfruits[i] = Fruit()

dfruits = {i: Fruit() for i, _ in enumerate(fruits)}

IIUC,这就是你想要做的:

使用字符串作为键:

dfruits = {}
for f in fruits:
    dfruits[f] = Fruit()
听写理解风格

dfruits = {i: Fruit() for i in fruits}
对dict使用整数键:

dfruits = {}
for i,f in enumerate(fruits):
    dfruits[i] = Fruit()

dfruits = {i: Fruit() for i, _ in enumerate(fruits)}

您可能会创建一个父类“Fruit”,其中包含“Apple”、“Banana”等的子类

这里有一篇文章描述了做你想做的事情的过程

我知道您可以创建一个对象数组,其中各个项继承各自类的特性,但是,我相信这些必须事先初始化类型为fruit/specific fruit的对象

x = Apple()
x.taste = "bitter"
list.append(x)

您可能会创建一个父类“Fruit”,其中包含“Apple”、“Banana”等的子类

这里有一篇文章描述了做你想做的事情的过程

我知道您可以创建一个对象数组,其中各个项继承各自类的特性,但是,我相信这些必须事先初始化类型为fruit/specific fruit的对象

x = Apple()
x.taste = "bitter"
list.append(x)

可能是重复的我看过了,我不认为这对我有帮助怎么没有?这正是你的问题,这里的答案基本上是该主题答案的重复。可能是重复的,我看了,我不认为这对我有帮助。为什么不是呢?这正是你的问题,这里的答案基本上是该主题答案的重复。