gpt4 book ai didi

java - Python 3.x : Java valueOf() equivalent in Python 3. x

转载 作者:行者123 更新时间:2023-11-30 07:22:22 27 4
gpt4 key购买 nike

在学习 Python 3 并将我的一些代码从 Java 转换为 Python 3.3 的过程中,我遇到了一个我一直无法修复的小问题。
在 Java 中,我有这段代码(只是虚拟代码以使其更小):

public enum Mapping {
C11{public int getMapping(){ return 1;}},
C12{public int getMapping(){ return 2;}},
public abstract int getMapping();
}

String s = "C11";
System.out.println(Mapping.valueOf(s))

工作正常并打印所需的“1”尝试在 Python 中执行此操作并不容易(目前)。我试图模仿一个枚举:

class Mapping:
C11=1
C12=2

s = 'C11'
print(Mapping.Mapping.(magic should happen here).s)

不幸的是,我不知道如何将字符串转换为一个属性,以便像那样调用(或类似的东西)。我需要这个,因为我在 Mapping 类中有一个巨大的列表,需要将从文本文件中读取的看似随机的单词转换为整数映射。

最佳答案

您正在寻找getattr :

>>> getattr(Mapping, s)
1

来自文档:

getattr(object, name[, default])

Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For example, getattr(x, 'foobar') is equivalent to x.foobar. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.

关于java - Python 3.x : Java valueOf() equivalent in Python 3. x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801912/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com