程序中的变量创建

时间:2013-03-20 14:40:40

标签: variables python-3.x

接下来,在我学习Python的过程中,我遇到了一个问题。可以在程序中创建变量,通过串联字符串命名,并用于存储对象吗?

所以,我的目标:

class Veg:
    def __init__(self, x):
        self.name = x
        print('You have created a new vegetable:', self.name, end='\n')

现在,创建一个变量:

tag = 1
newVegObj = 'veg' + str(tag) #Should create a variable named 'veg1'
newVegObj = Veg('Pepper') #Creates an object stored in 'newVegObj' :(

但我希望创建的对象存储在'veg1'中。然后我可以做:

tag = tag + 1
newVegObj = 'veg + str(tag) #Create a variable named 'veg2'
newVegObj = Veg('Tomato')

目标是veg1.name = Pepper和veg2.name = Tomato,并且能够不断创建其他变量来存储额外的蔬菜。

我不知道这是否可行。如果是这样,如果这需要一个复杂的解决方案,您能否提供一个有用的代码解释?希望它简单,我只是没想到。

提前致谢!你们是最棒的!

1 个答案:

答案 0 :(得分:0)

考虑到您的意见,以下内容可能会有用。

names = ['Tomato', 'Snoskommer', 'Pepper'] # a list containing 3 names
vegetables = {} # an empty dictionary

for name in names: # just textual: for each name in the names list ...
    new_veg = Veg(name) # create a new vegetable with the name stored in the variable 'name'
    vegetables[name] = new_veg # add the new vegetable to the vegetable dictionary

# at this point, the vegetables dictionary will contain a number of vegetables, which you can find by
# 'indexing' the dictionary with their name:
print(vegetables['Tomato'].name) # will print 'Tomato'

希望有助于解决Python中的一些基础知识,尽管从一个简单的教程开始可能是最好的:)


要进行扩展,可以使用以下内容进行更改:

def add_vegetable(name):     如果蔬菜名称:        print('已经有一个有这个名字的蔬菜......')     其他:        蔬菜[名称] =蔬菜(名称)

调用函数将蔬菜添加到列表中:

add_vegetable('Cucumber')

之后,字典将包含另一个名为“Cucumber”的蔬菜。

但是再次:通过一些入门教程,http://python.org应该可以指向一些。