Python:对定义的常量进行位测试

2024-05-16 10:49:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个FUSE客户机,使用python-fuse。在

其中一个需要编写的函数模拟了Pythonos.open()函数,我需要测试flags参数。在

通过使用按位或来组合os.O_*常量,很容易创建这样的参数。在

但我不知道如何测试是否设置了特定的设置。在

看到了吗

if flags | os.O_append:
     ...

在圣诞节举个例子,不知道这是否正确。是否正在测试是否在flag中设置了APPEND标志?忽略是否设置了其他标志?在

我在努力

^{pr2}$

但似乎不起作用。在

绝对是个Python怪。在


Tags: 函数参数客户机ifos标志openfuse
1条回答
网友
1楼 · 发布于 2024-05-16 10:49:50

&掩蔽测试:

if flags & os.O_APPEND:

|用于组合标志,使用&(按位与)来测试是否设置了标志。if flags | os.O_APPEND行很可能是xmp.py示例中的一个错误,它始终是True。在

演示:

^{pr2}$

因为数字0为false,而其他任何数值为true,8被视为true。在

注意,os.O_RDONLY0;它相当于没有设置任何标志。您可以显式地测试(if not flagsif flags == os.O_RDONLY),或者从其他标志的测试中推断出来。在

相关问题 更多 >