Python3.x:Python3.x中的Java valueOf()等价物

Python3.x:Python3.x中的Java valueOf()等价物,java,python-3.x,value-of,Java,Python 3.x,Value Of,在学习Python 3并将部分代码从Java转换为Python 3.3的过程中,我遇到了一个无法解决的小问题。 在Java中,我有以下代码(只是为了使其更小而编写的伪代码): 工作正常并打印所需的“1” 在Python中尝试这样做并不容易(目前)。我试图用以下方法模拟枚举: class Mapping: C11=1 C12=2 s = 'C11' print(Mapping.Mapping.(magic should happen here).s) 不幸的是,我不知道如何将字

在学习Python 3并将部分代码从Java转换为Python 3.3的过程中,我遇到了一个无法解决的小问题。
在Java中,我有以下代码(只是为了使其更小而编写的伪代码):

工作正常并打印所需的“1” 在Python中尝试这样做并不容易(目前)。我试图用以下方法模拟枚举:

class Mapping:
    C11=1
    C12=2

s = 'C11'
print(Mapping.Mapping.(magic should happen here).s)
不幸的是,我不知道如何将字符串转换为这样调用的属性(或类似的东西)。 我需要这个,因为我在类映射中有一个巨大的列表,需要将从文本文件读取的看似随机的单词转换为整数映射。
您正在寻找:

从文件中:

getattr(对象,名称[,默认值])

返回对象的命名属性的值。名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,
getattr(x,'foobar')
相当于
x.foobar
。如果命名属性不存在,则返回默认值(如果提供),否则将引发
AttributeError

使用:


请阅读,不是因为这个特定的问题,而是因为它和你问它的方式表明你仍然主要用Java术语思考。我会这样做的,谢谢你的提示!
class Mapping:
    C11=1
    C12=2

s = 'C11'
print(Mapping.Mapping.(magic should happen here).s)
>>> getattr(Mapping, s)
1
class Mapping:
    C11=1
    C12=2

print(getattr(Mapping, 'C11')) # prints 1