WIL - 221202

happypath·2022년 12월 5일
0

WIL

목록 보기
1/2

1. API 레이어의 역할

  1. validation - (schema)
  2. parsing - (내가 원하는 데이터 모양으로 정제해서 서비스 레이어로 전달)
  3. input - (클라이언트에서 인풋 받아오기)

2. Instance method

인스턴스 데이터를 엑세스 할 필요가 없는 경우 but클래스 데이터는 접근
클래스의 인스턴스 메소드는 self로 첫번째 인자를 가짐. 이 외에 여러 파라미터를 가질 수 있음
자신의 인스턴스를 전달→즉, 자신의 인스턴스 변수에 접근할 수 있다는 것.
인스턴스 변수는 각 인스턴스마다 각각 존재함

class Example:
	def __init__(self, name, age):
		# 인스턴스 변수
		self.name = name
		self.age = age

	def example1(self):
		print(self.name)

3. Class method

클래스의 클래스 메소드는 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)

4. Static method

인스턴스나 클래스를 인자로 받지 않는 메소드
일반적인 함수(function)와 별반 차이가 없음. 굳이 차이라고한다면 클래스 안에 정의해서 해당 클래스와 연관성을 나타내는 정도
자식에서 부모접근은 가능

https://schoolofweb.net/blog/posts/파이썬-oop-part-3-클래스-변수class-variable/

5. 회사 코드에서의 예제

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]
		...

0개의 댓글