파이썬 문법 질문입니다.

jaeung24k의 이미지

OctoPrint 라는 오픈소스 Python 프로젝트의 코드 중 일부입니다.
'|' 기호가 bitwise 연산으로 알고 있는데 아래 코드에서도 bitwise 연산자로 사용된건지 궁금합니다.

class PositionRecord(object):
    _standard_attrs = {"x", "y", "z", "e", "f", "t"}
 
    def __init__(self, *args, **kwargs):
    attrs = self._standard_attrs | set(key for key in kwargs if self.valid_e(key))
    for attr in attrs:
        setattr(self, attr, kwargs.get(attr))
익명 사용자의 이미지

모르는 게 있으면 매뉴얼을 찾아봐야지요.

1. python은 연산자를 overloading하는 게 가능한 언어입니다. C++처럼요.

https://docs.python.org/3/reference/datamodel.html#emulating-numeric-types

2. set의 | 연산자는 union입니다.

https://docs.python.org/3.8/library/stdtypes.html#frozenset.union

jaeung24k의 이미지

도움이 많이 되었습니다^^

오늘도 생명과 호흡을 주심에 감사합니다.