加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 使用动态名称访问变量的值

发布时间:2020-12-20 10:33:23 所属栏目:Python 来源:网络整理
导读:我发现了几个主题,其中讨论了在循环中动态创建单个变量是不好的做法,更好地使用字典. 在我的情况下,我不需要动态创建它们,我想在循环中访问它们. 我不想为它们使用字典,因为这些变量在代码中的很多地方使用,并且只在一个地方我需要这样的动态访问. 想法示例
我发现了几个主题,其中讨论了在循环中动态创建单个变量是不好的做法,更好地使用字典.

在我的情况下,我不需要动态创建它们,我想在循环中访问它们.

我不想为它们使用字典,因为这些变量在代码中的很多地方使用,并且只在一个地方我需要这样的动态访问.

想法示例:

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)

不要按照你想要的方式去做.它只会导致眼泪 – 如果不是你的眼泪,那么那些必须看你的代码的人才会流泪.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读