인스턴스 데이터를 엑세스 할 필요가 없는 경우 but클래스 데이터는 접근
클래스의 인스턴스 메소드는 self로 첫번째 인자를 가짐. 이 외에 여러 파라미터를 가질 수 있음
자신의 인스턴스를 전달→즉, 자신의 인스턴스 변수에 접근할 수 있다는 것.
인스턴스 변수는 각 인스턴스마다 각각 존재함
class Example:
def __init__(self, name, age):
# 인스턴스 변수
self.name = name
self.age = age
def example1(self):
print(self.name)
클래스의 클래스 메소드는 cls로 첫번째 인자를 가짐. 자기 자신의 클래스를 전달
클래스 생성자의 파라미터와 다른 형태의 파라미터를 전달하기 위해 사용
메서드 바깥에 존재하는 변수를 클래스 변수라고함(해당 클래스를 사용하는 모두가 공유하는 변수) - 모든 인스턴스가 공유하는 변수에 접근해서 사용하기 위한 것
class Example:
# 클래스 변수
nationality = 'korea'
def __init__(self, name, age):
# 인스턴스 변수
self.name = name
self.age = age
def example1(self):
print(self.name)
@classmethod
def example2(cls, height):
print(height)
인스턴스나 클래스를 인자로 받지 않는 메소드
일반적인 함수(function)와 별반 차이가 없음. 굳이 차이라고한다면 클래스 안에 정의해서 해당 클래스와 연관성을 나타내는 정도
자식에서 부모접근은 가능
https://schoolofweb.net/blog/posts/파이썬-oop-part-3-클래스-변수class-variable/
pytest에서 데코레이터로 params를 넣어 주는 경우가 많음
@pytest.mark.parametrize(
"channel_id",
[
"1bf9728f-fc82-47e3-955c-3db32f39ff8b",
...
],
)
def test_point_converter(channel_id):
point_per_channel = channel_id_point_type_mapper[channel_id]
...