Python:访问面向对象的变量?

2024-09-21 02:55:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用面向对象来创建一个游戏。我希望能够访问房间和运行活动,但只能在每个房间中运行某些活动。我把所有的活动都分配给一个对象,我想用播放器输入的变量来访问对象的变量,然后打印它们在房间里做了什么。你知道吗

    if activitiesList[i] == choice2:
        convert = (activitiesList2[i + 1])
        convert = str(convert)
        print ('You', a.convert, 'in', a.name)

Convert从列表中获取活动的名称,然后我希望它告诉对象它正在查找哪个变量。 我所尝试的一切都只会导致程序在对象中查找属性“convert”。 如何让它搜索玩家选择的属性?你知道吗


Tags: 对象inyou游戏convertif属性面向对象
3条回答

如果要动态访问属性,可以使用^{}函数:

try:
    value = getattr(a, attribute_name)
except AttributeError:
    # attribute not found
    pass

或者,也可以提供在属性不存在时要返回的默认值,而不是要抛出的异常:

value = getattr(a, attribute_name, default_value)

你试过用dict代替list吗?你知道吗

stuff_in_room = {'hammer': ...}
if action in stuff_in_room:
    # do something
else:
    # can't do that

不完全清楚你在问什么,但我怀疑你想要getattr

action = getattr(a, convert)

相关问题 更多 >

    热门问题