用于按位存储的python库?

时间:2013-06-30 20:46:05

标签: python bit-manipulation bitwise-operators

我需要能够将某些应用程序'常量'编码/解码为单个变量。

最好的描述类似于chmod中的八进制表示法,并且可以这样工作:

class Permissions(MagicalExistingClassSomewhere):
     EXECUTE = 1
     WRITE = 2
     READ = 4

a = Permissions(6)
print a
> [ Permissions.READ , Permissions.WRITE ]
a.add( Permissions.EXECUTE )
print a
> [ Permissions.READ , Permissions.WRITE , permissions.EXECUTE ]
print a.encode()
> 7
a.remove( Permissions.READ )
print a.encode()
> 3

有没有人见过一个可以抽象所有按位操作的库?我看过整个PyPi并看到一些专注于enumbitwise的库,但没有真正做到这一点。

1 个答案:

答案 0 :(得分:1)

https://codereview.stackexchange.com/questions/23187/bitwise-flag-code-for-python

上有一些关于此类事情的讨论和一些源代码

它允许您设置标记,如:

# define your flags
class sec(FlagType):
  admin = 1
  read = 2
  write = 4
  usage = 8

flags = +sec.read -sec.write +sec.usage

flags.read
>>> True

很多反馈说它不是Pythonic:)