“你怎么样?”\&引用;及|&引用;在Python中使用(不在字符串中)

“你怎么样?”\&引用;及|&引用;在Python中使用(不在字符串中),python,syntax,Python,Syntax,我正在使用Python3,试图理解一些使用“\”和“|”的代码,但不是在字符串上下文中,我通常看到“\”。我在手册中找不到说明这一点的文档: def test(this, that): return isinstance(that, something) and \ self.number == that.number and \ self.stuff = that.stuff 也| this.stuff = self.things | som

我正在使用Python3,试图理解一些使用“\”和“|”的代码,但不是在字符串上下文中,我通常看到“\”。我在手册中找不到说明这一点的文档:

def test(this, that):
     return isinstance(that, something) and \
          self.number == that.number and \
          self.stuff = that.stuff
也|

this.stuff = self.things | something.stuff

谢谢

“\”表示继续下一行

“|”使用as或运算符

“\”表示继续下一行

“|”用作OR运算符

反斜杠用于行继续。因此:

def test(this, that):
     return isinstance(that, something) and \
          self.number == that.number and \
          self.stuff = that.stuff
相当于:

def test(this, that):
     return isinstance(that, something) and self.number == that.number and self.stuff = that.stuff
换句话说,这纯粹是为了开发者的利益,对代码没有实际意义。我想PEP推荐的最大行宽为80个字符,所以如果超过这个宽度,就使用它。但我也应该注意,如果使用括号,则不必使用\即可:

def test(this, that):
     return (isinstance(that, something) and 
          self.number == that.number and 
          self.stuff = that.stuff
)

管道“|”是位“或”运算符。这是一个常见问题,因此这里有更多信息:

反斜杠用于换行。因此:

def test(this, that):
     return isinstance(that, something) and \
          self.number == that.number and \
          self.stuff = that.stuff
相当于:

def test(this, that):
     return isinstance(that, something) and self.number == that.number and self.stuff = that.stuff
换句话说,这纯粹是为了开发者的利益,对代码没有实际意义。我想PEP推荐的最大行宽为80个字符,所以如果超过这个宽度,就使用它。但我也应该注意,如果使用括号,则不必使用\即可:

def test(this, that):
     return (isinstance(that, something) and 
          self.number == that.number and 
          self.stuff = that.stuff
)

管道“|”是位“或”运算符。这是一个常见问题,因此这里有更多信息:

\
是一个换行标记<代码>是按位或。请参阅并在此处解释:
\
是一个换行标记<代码>是按位或。请看并在这里解释:这里:我试图理解,这是否有效:
test=1 | 2如果test==1:print(“1”)如果test==2:print(“2”)
似乎“test=1 | 2”使“test==3”不像OR那样工作。所以我试图理解,这行吗:
test=1 | 2如果test=1:print(“1”)如果test=2:print(“2”)
似乎“test=1 | 2”使“test=3”不像OR那样工作。谢谢,这工作得很好,但我仍然不明白为什么:
test=5 | 67
print(test)显示71.运行“bin(5)”和“bin(67)”。您将看到5和67的二进制表示。然后在每个位置按位执行“或”。将结果转换回基数10,您将看到它是71。如果你不知道什么是二进制或按位运算,也许可以读一下,或者提出一个新的问题。对于几乎所有的用例,您都不会执行逐位操作,只能使用Python的“or”,而不是5和67上的“or”。它在1000011和101上运行。它一次只做一点,你期望的结果是什么?也许如果我知道,我可以告诉你如何实现它。是的,这是正确的。负数有点棘手,但正数就是这样。谢谢,这很有效,但我仍然不明白为什么:
test=5 | 67
print(test)
显示71。运行“bin(5)”和“bin(67)”。您将看到5和67的二进制表示。然后在每个位置按位执行“或”。将结果转换回基数10,您将看到它是71。如果你不知道什么是二进制或按位运算,也许可以读一下,或者提出一个新的问题。对于几乎所有的用例,您都不会执行逐位操作,只能使用Python的“or”,而不是5和67上的“or”。它在1000011和101上运行。它一次只做一点,你期望的结果是什么?也许如果我知道,我可以告诉你如何实现它。是的,这是正确的。负数有点棘手,但对于正数,它就是这样工作的。