프로그램 개발에서 변수는 비트 연산을 통해 여러 상태를 저장할 수 있습니다.

프로그램 개발에서 변수는 비트 연산을 통해 여러 상태를 저장할 수 있습니다.

프로그램 개발에는 보통 다양한 상태가 존재하는데, 각각의 상태를 변수에 저장하면 경우에 따라 부적합한 경우가 있습니다. 개체를 숨기거나 표시하는 데 사용됩니다.이 때 다음 코드와 같이 비트 연산을 사용하여 다양한 상태를 저장하는 것이 좋습니다.

class HiddenReason:
  REASON1 = 1 << 0
  REASON2 = 1 << 1
  REASON3 = 1 << 2

class Object:
  def __init__(self):
    self.state = 0
    self.visible = True

  def addHiddenReason(self, reason):
    self.state |= reason
    self.updatevisible()

  def removeHiddenReason(self, reason):
    self.state &= ~reason
    self.updatevisible()

  def updatevisible(self):
    self.visible = not self.state


a = Object()
print(a.visible)  # True
a.addHiddenReason(HiddenReason.REASON1)
print(a.visible)  # False
a.addHiddenReason(HiddenReason.REASON2)
print(a.visible)  # False
a.removeHiddenReason(HiddenReason.REASON1)
print(a.visible)  # False
a.removeHiddenReason(HiddenReason.REASON2)
print(a.visible)  # True

이 코드는 하나의 변수 상태에 여러 상태를 저장하는 것으로 매우 유용하며 이 방법은 다른 프로그램 개발에서도 매우 일반적입니다!

추천

출처blog.csdn.net/qq_41841073/article/details/131640047