728x90
_args, *_kwargs
보통의 함수에서는 매개변수를 정해둔 개수만큼만 받을 수 있다.
def plus(a, b):
return a + b
plus(1, 2)
![image-20200612160617234](C:\Users\jeff9_gkudbgy\AppData\Roaming\Typora\typora-user-images\image-20200612160617234.png)
하지만 내장함수인 print()
를 보면 무제한?으로 입력이 가능하다.
print(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
방법은 *args
와 **kwargs
를 이용하는 것이다.
우선 *args
를 이용하여 입력받은 모든 숫자를 더해보자.
def plus(*args):
return sum(args)
print(plus(1,2,3,4,5,6,7,8,9,10))
1 ~ 10까지의 합이 출력된것을 볼 수 있다.
def func(*args , **kwargs):
print(args)
print(kwargs)
return
func(1,2,3,4,5, hello = True, World = True)
기본적으로 *args
는 tuple로, **kwargs
는 dictionary로 저장이된다.
객체지향프로그래밍 (OOP : Object Oriented Programming)
학부시절 1학년때 처음으로 접했던 객체지향프로그래밍, 하나의 설계도? 붕어빵 틀? 을 만들어서 찍어내는 듯한 느낌... 아직도 정확히 무슨 뜻인지는 이해하지 못했다. 대충 아~ 이런거구나 정도랄까..
class Car():
wheels = 4
doors = 4
windows = 4
seats = 4
porche = Car()
porche.color = "Red"
이런 class 를 이용한 설계를 의미한다.
function = method 로 알고있었는데 정확히 말하면 class 안에서 만들어진 함수 = method 라 하고 그렇지 않으면 function 이라고 한다.
dir()
: class 내부에 있는 모든 요소들을 보여준다.
클래스 상속받기
class Car():
# init 메소드 오버라이딩
def __init__(self, **kwargs):
self.wheels = 4
self.doors = 4
self.windows = 4
self.seats = 4
class convertible(car):
def __init(self, **kwargs):
# 부모 생성자 상속
super().__init(kwargs)
self.time = kwargs.get("time", 10)
위와같은 방식들이 장고에서 많이 쓰인다고 한다!
728x90
300x250