我发现了几个主题,其中讨论了在循环中动态创建单个变量是不好的做法,更好地使用字典.
在我的情况下,我不需要动态创建它们,我想在循环中访问它们.
我不想为它们使用字典,因为这些变量在代码中的很多地方使用,并且只在一个地方我需要这样的动态访问.
想法示例:
car_pos = 1; man_pos = 10
car_vel = 100; man_vel = 5
for elm in ['car', 'man']:
elm_pos = elm + '_pos'
elm_vel = elm + '_vel'
# I want values of elements with such names here
print(elm_pos, elm_vel)
# Desired output:
# (1, 100)
# (10, 5)
变量名称是关联信息的可怕方式. man_pos和man_vel之间没有任何联系,只不过它们都是以man开头的.除此之外,他们是完全分开的. Python有更好的方法将这些元素捆绑在一起.
在这种情况下,人和车应该是属性pos和vel的对象.
class Thing:
def __init__(self, pos, vel):
self.pos = pos
self.vel = vel
# assume that both men and cars move only in one dimension
man = Thing(10, 2)
car = Thing(100, -5)
然后你的循环就是:
for item in [car, man]:
print(item.pos, item.vel)
不要按照你想要的方式去做.它只会导致眼泪 – 如果不是你的眼泪,那么那些必须看你的代码的人才会流泪.
查看更多关于在Python中使用动态名称访问变量的值的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did171230