使用c联合的位标志实现。这个库消除了使用cTypes的需要,并帮助您快速访问切换的位。

bitflags的Python项目详细描述


#位标志
使用c联合实现位标志。此库不需要使用cTypes,并帮助您快速访问
位的切换。


此类是根据在https://wiki.python.org/moin/bitmanability的
位字段部分下的位操作指南构建的。

动态位标志对象(位标志)。

2:“flag3”,3:“flag4”,4:“发生了一些事情”}





>f=myflags(0)



>assertf.value==0
>assert int(f)==0
































>f.assertf.value==f.value=0b101位(位数可以是通过设置类属性nbits或nbytes进行更改
打印(f.bit_7,f.bit_6,f.bit_5,f.bit_4,f.bit_3,f.bit_2,f.bit_1,0 0 0 0 0 0 0 0 0 0 0 1 0 1

>
转换为使用数据类型STR(f)='Frase'(f')=5(<0)=Br/>断言字节(f)=b′\\b0/'`br/> `br/> br/>如果您希望属性与显示选项不同,则该类是灵活的。
By/>‘Python < BR/>从BITFLAGS导入BitFlags
BR/>类MyFLAGS(BITFLAGS):
选项={ 0:“失败”,1:“警告”,2:“系统2%重载”}

断言hasattr(f,“失败”)
断言hasattr(f,“警告”)
断言hasattr(f,“系统2%重载”)


assert f.getu flags()=['失败','警告','系统2%重载']


class specialflags(位标志):
选项={0:“2%系统失败”,#注意:变量名不能以数字开头!
1:“系统重载”,
2:“系统安全”}
字段={system_failure':0,'system_overload':1,'safe':2}访问位的自定义变量


assert s.system_overload==1
assert s.safe==1


assert s.get_flags()=[“2%系统故障”,“系统过载”,“系统安全”]





>s2=specialflags(1)
>assert s s.get_flags()=[“2%系统故障”]
```















>class myflags(bitbflags):
>pattern=%i


35;5-bin(5)显示位值(0b101)
assert f.value==0b101


35;示例-位标志
一次性对象位标志。这基本上与位标志相同,只有实例构造函数允许您设置选项、字段和位/字节数。


``python
from bitflags import bitflags

f=bitflags(flag1=1,flag3=1,options={0:“flag1”,1:“flag2”,2:“flag3”,3:“flag4”,4:“发生了一些事情”})


assert f.value==0b101


assert f.flag1==1
assert f.flag2==0
assert f.flag3==1
assert f.flag4==0
assert f.something“发生了一些事情”==0

“d”:3})


assert f.a==f.bit_0
assert f.b==f.bit_1
assert f.c==f.bit_2
assert f.d==f.bit_3
````

BitFlags构造函数使用类型创建新的BitFlags类。除非从创建的对象访问该类,否则该类实际上是不可重用的。

``python
from bitflags import bitflags

f=bitflags(flag1=1,flag3=1,options={0:“flag1”,1:“flag2”,2:“flag3”,3:“flag4”,4:“发生了什么事”})

assert f.value==0b101

f2=type(f)(0b1)
assertF2.flag1==1
断言F2.value==1
assert f.value==0b101

f3=f.cuuuuuuuuuuuu类(0b10)
assert f3.flag1==0
assert f3.flag2==1
断言F3.value==2
断言F2.value==1
assert f.value==0b101

标签:

  • value
  • 标志
  • bit
  • assert
  • 断言
  • ctypes
  • 快速访问
  • 欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java线程;创建一个单独的线程来定期执行某些操作   用java将SonarQube升级到5.2失败。util。同时发生的CancellationException:空   在线程对象上调用start时,线程上设置的java优先级无效   java如何在不使用reduce()或last()折叠的情况下获取通量的最后一项   java如何从ArrayList中获取元素?   应用了逻辑的JavaTwitterAPI   在这种情况下,怎样才能不让自己重复?安卓的java   JavaAndroid:线程可运行和处理程序。在run方法中发布问题(Handler.postXX在预期情况下不会按时运行)   java log4j grok与管道故障   使用循环返回命令选项时出现问题/仅运行一个命令(JAVA)   java双重比较问题   使用vertx的JWT公钥/私钥身份验证中的java握手   用Java将WMA和AAC音频转换为MP3   解析字符串java get index   与具有不同数据类型的密钥同名的java JSON