接下来,在我学习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,并且能够不断创建其他变量来存储额外的蔬菜。
我不知道这是否可行。如果是这样,如果这需要一个复杂的解决方案,您能否提供一个有用的代码解释?希望它简单,我只是没想到。
提前致谢!你们是最棒的!
答案 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应该可以指向一些。