小编Dav*_*ett的帖子

将字符串表示与使用整数值的Enum相关联?

我正在尝试创建一个具有整数值的枚举,但它也可以为每个值返回一个显示友好的字符串.我想我可以只定义一个dict映射值到字符串,然后实现__str__和一个带有字符串参数的静态构造函数,但是有一个问题...

(在不同的情况下,我可以让这个Enum的基础数据类型为字符串而不是整数,但这被用作枚举数据库表的映射,因此整数值和字符串都是有意义的,前者作为主键.)

from enum import Enum

class Fingers(Enum):
    THUMB = 1
    INDEX = 2
    MIDDLE = 3
    RING = 4
    PINKY = 5

    _display_strings = {
        THUMB: "thumb",
        INDEX: "index",
        MIDDLE: "middle",
        RING: "ring",
        PINKY: "pinky"
        }

    def __str__(self):
        return self._display_strings[self.value]

    @classmethod
    def from_string(cls, str1):
        for val, str2 in cls._display_strings.items():
            if str1 == str2:
                return cls(val)
        raise ValueError(cls.__name__ + ' has no value matching "' + str1 + '"')
Run Code Online (Sandbox Code Playgroud)

转换为字符串时,我收到以下错误:

>>> str(Fingers.RING)
Traceback (most recent call last):
  File …
Run Code Online (Sandbox Code Playgroud)

python enums python-3.x

5
推荐指数
3
解决办法
6288
查看次数

如果被同名变量覆盖,则调用内置函数

我有一个变量type,我想使用内置type()函数

def fun(inv):
   log.debug('type of inv {}'.format(type(inv)))
   type = 'int'
Run Code Online (Sandbox Code Playgroud)

运行该函数时出现以下错误:

AttributeError: 'module' object has no attribute 'type'
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
1757
查看次数

Python - 字符串是否包含另一个字符串中的所有字符?

我需要检查一个字符串是否包含一组字符,并且它们需要显示正确的次数.

string1 = "somestring"
string2 = "thestrings"
characters = "egimnorsst" # Note that there are two 's' characters here
does_string_contain(string1, characters) # True
does_string_contain(string2, characters) # False
Run Code Online (Sandbox Code Playgroud)

python string

1
推荐指数
1
解决办法
122
查看次数

标签 统计

python ×3

enums ×1

python-3.x ×1

string ×1