那些名字是
数字常量
,每个2的幂。这意味着它们是一个整数
单比特集
.
你可以把这些数字和
|
要生成具有多个位集的整数,每个位代表一个特定选项:
>>> import fcntl
>>> fcntl.LOCK_SH # bit 1 set
1
>>> fcntl.LOCK_EX # bit 2 set
2
>>> fcntl.LOCK_NB # bit 3 set
4
>>> fcntl.LOCK_UN # bit 4 set
8
>>> fcntl.LOCK_SH | fcntl.LOCK_UN # combine bits 1 and 4
9
>>> format(fcntl.LOCK_SH | fcntl.LOCK_UN, '04b')
'1001'
这是在系统调用中传递设置配置的一种非常常见的方法。
fctnl.lock()
是这样的一个例子,但是在同样的技术应用的地方还有很多。这个
os.open()
call
是另一个例子
re
module flags
.
重要的是要认识到
整数
. 而不是用
fcntl.LOCK_EX | fcntl.LOCK_NB
(设置第2位和第3位),您可以直接输入
6
:
fcntl.lockf(fp, 6)
而且,就
lockf()
功能相关。使用命名常量的意义在于,使用这些常量
自我文件码
.