#1 클래스 변수클래스 변수는 인스턴스 변수와 달리 클래스 전반에 영향을 미치는 변수다. 인스턴스들은 클래스 이름을 통해 클래스 변수에 접근할 수 있다.class MyClass: # 클래스 변수 정의 class_var = "Class variable" def __init__(self, value): self.inst_var = value def print(self): # 클래스 이름을 통해 클래스 변수에 접근 print(MyClass.class_var, self.inst_var)print(MyClass.class_var) # Class variablei1 = MyClass(123)i2 = MyClass(456)i3 = MyClass(78..
#1 class 키워드class 키워드로 필요한 자료형을 만든다. 클래스는 헤더와 본체로 나뉜다.#2 헤더헤더에는 class 키워드와 자료형의 이름이 들어간다. 자료형의 이름은 케멀 케이스로 표현한다.# 클래스 헤더class MyInt: # 클래스 키워드와 자료형의 이름#3 본체클래스의 본체는 데이터속성과 메서드로 구성된다.메서드메서드는 일반 메서드와 특별한 메서드가 존재한다. 메서드 모두 다른 함수들처럼 def를 사용하여 정의한다.class MyInt: # 메서드 정의 def __init__(self, value): self.value = value def add(self, a): self.value = self.value + a메서드는 일반 메서드와 특..
#10 이름이 없는 함수문장 하나로 이뤄진 짧고 간단한 함수는 이름도 붙여주지 않고 간결하게 사용할 수 있다. 이름이 없는 함수를 람다함수라고도 한다. lambda x, y: x + y람다함수는 lambda 키워드를 사용하여 만든다.# 함수 객체처럼 변수를 통해서 사용my_func = lambda x, y: x + ymy_func(1, 2)람다함수를 다른 함수의 인수로 넣어서 사용할 수 있다.# 다른 함수에 인수로 넣어서 사용할 수도 있습니다.def do_something(my_func): my_func()do_something(lambda: print("Hello, World"))람다는 map(), filter() 등의 내장함수와 함께 사용할 때 편리하다.add_100 = lambda x: x +..
#8 재귀 호출자기 자신을 호출하도록 정의한 함수를 재귀함수라고 한다. 재귀함수의 호출을 재귀호출이라고 한다.def my_func(): print("my_func") my_func()my_func()동일한 형태의 함수라도 실제로는 함수를 호출할 때마다 새로운 프레임을 만든다.def my_func(): x = [] print("my_func", id(x)) my_func()my_func()재귀호출을 중단하는 종료조건이 필요하다.def my_func(count): if count > 0: my_func(count - 1) print(count)my_func(3)#9 함수객체파이썬에서는 함수도 객체다. 따라서 함수도 변수에 저..
#7 네임스페이스와 변수의 범위변수의 범위동일한 이름의 변수가 여러번 사용할 때가 있다. 변수는 경우에 따라서 다른 객체를 참조할 수 있다. 이는 변수가 동일하더라도 참조하는 객체가 다를 수 있기 때문이다. 변수마다 변수의 범위가 있다. 변수의 범위를 알려면 네임스페이스를 이해해야한다.변수와 네임스페이스파이썬에서는 다른 언어와 달리 변수는 객체를 보관하는 장소가 아니라 객체에 붙인 이름이다. 변수 뿐만 아니라 함수, 클래스도 이름이다. 객체들을 식별하기 위해 이름들을 모은 공간을 네임스페이스(namespace)라고 한다.하나의 네임스페이스에서는 이름은 중복되지 않는다. 즉, 하나의 네임스페이스에서 이름은 하나의 객체만을 가리킨다. 그렇지만 다른 네임스페이스에서는 같은 이름이 존재할 수 있다.def fun..
#3 매개변수와 인수매개변수매개변수는 함수의 외부에서 내부로 객체의 참조를 전달한다.def repeat_print(message, count): """메세지를 주어진 횟수만큼 반복 출력""" for i in range(count): print(message)repeat_print("안녕", 3)인수인수는 함수 실행시 함수 내부로 실제로 전달되는 대상이다. 인수는 위치인수와 키워드 인수가 있다.위치인수는 매개변수의 순서와 대응해서 들어간다.def repeat_print(message, count): """message를 count번 출력""" for _ in range(count): print(message)repeat_print(3, "안녕") # 오류 발..