让我们考虑一下这种特殊情况,在这种情况下我想传递一组某些对象的状态。为了方便和灵活(或任意),我选择使用二进制状态,然后将这些状态使用按位或“ |”连接 在我通过它们之前:
status_a = 0b1
status_b = 0b10
status_c = 0b100
statuses_to_pass = status_a | status_c # 0b101
Run Code Online (Sandbox Code Playgroud)
然后我意识到,在这种情况下,我也可以使用加法算术运算符“ +”:
status_a | status_c == status_a + status_c
# 0b101 == 0b101 --> True
Run Code Online (Sandbox Code Playgroud)
当然,当状态为2的正幂时,情况就是这样。还有一些其他警告,例如:
status_a | status_c | status_c == status_a + status_c + status_c
# 0b101 == 0b1001 --> False
Run Code Online (Sandbox Code Playgroud)
但是,让我们假设我处于限制范围之内-是否有任何理由使按位运算符比算术运算符更好?Python背后有东西吗?哪一个更快?也许还有其他我没有想到的副作用?
如果我有一个使用 pylatex 设置的简单文档...
import pylatex as pl
geometry_options = {
"head": "1pt",
"margin": "0.2in",
"bottom": "0.2in",
"includeheadfoot": False}
doc = pl.Document(geometry_options=geometry_options)
doc.append("text")
Run Code Online (Sandbox Code Playgroud)
...如何在文本块后添加一定粗细的黑色水平分隔线?