본문 바로가기

분류 전체보기414

정적 메서드 / 클래스 메서드 지금까지 클래스의 메서드를 사용할 때 인스턴스를 통해서 호출했습니다.이번에는 인스턴스를 통하지 않고 클래스에서 바로 호출할 수 있는 정적 메서드와 클래스 메서드에 대해 알아보겠습니다. 1. 정적 메서드 class 클래스이름: @staticmethod def 메서드(매개변수1, 매개변수2): 코드 class Calc: @staticmethod def add(a, b): print(a + b) @staticmethod def mul(a, b): print(a * b) Calc.add(10, 20) # 클래스에서 바로 메서드 호출Calc.mul(10, 20) # 클래스에서 바로 메서드 호출30200 정적 메서드는 self를 받지.. 2026. 1. 28.
특수 메서드 1. __slots__ : 특정 인스턴스 속성 제한 두기 인스턴스는 자유롭게 속성을 추가할 수 있지만 특정 속성만 허용하고 다른 속성은 제한하고 싶을 수도 있습니다. 이때는 클래스에서 __slots__에 허용할 속성 이름을 리스트로 넣어주면 됩니다. 특히 속성 이름은 반드시 문자열로 지정해줍니다.__slots__ = ['속성이름1, '속성이름2']>>> class Person:... __slots__ = ['name', 'age'] # name, age만 허용(다른 속성은 생성 제한)...>>> maria = Person()>>> maria.name = '마리아' # 허용된 속성>>> maria.age = 20 .. 2026. 1. 28.
비공개 속성 사용하기 이번에는 클래스 바깥에서는 접근할 수 없고 클래스 안에서만 사용할 수 있는 비공개 속성(private attribute)을 사용해보겠습니다.비공개 속성은 __속성과 같이 이름이 __(밑줄 두 개)로 시작해야 합니다. class 클래스이름: def __init__(self, 매개변수) self.__속성 = 값 class Person: def __init__(self, name, age, address, wallet): self.name = name self.age = age self.address = address self.__wallet = wallet # 변수 앞에 __를 붙여서 비공개 속성으로 만듦 maria = Pers.. 2026. 1. 26.
속성 속성(attribute)을 만들 때는 __init__ 메서드 안에서 self.속성에 값을 할당합니다.class 클래스이름: def __init__(self): self.속성 = 값 class Person: def __init__(self): self.hello = '안녕하세요.' def greeting(self): print(self.hello) james = Person()james.greeting() # 안녕하세요. 안녕하세요. __init__ 메서드는 james = Person()처럼 클래스에 ( )(괄호)를 붙여서 인스턴스를 만들 때 호출되는 특별한 메서드입니다. 즉, initialize이라는 이름 그대로 인스턴스(객체)를 초기화합니다.. 2026. 1. 26.
클래스와 메서드 만들기 ​클래스는 객체를 표현하기 위한 문법입니다. 예를 들어 게임을 만든다고 하면 기사, 마법사, 궁수, 사제 등 직업별로 클래스를 만들어서 표현할 수 있습니다.특정한 개념이나 모양으로 존재하는 것을 객체(object)라고 부릅니다. 그리고 프로그래밍으로 객체를 만들 때 사용하는 것이 클래스입니다.그럼 게임의 기사 캐릭터를 클래스로 표현하려면 무엇이 필요할까요? 간단합니다. 일단 게임 캐릭터는 체력, 마나, 물리 공격력, 주문력 등이 필요합니다. 그리고 기사 캐릭터는 칼로 베기, 찌르기 등의 스킬이 있어야 합니다. ▼ 그림 34-3 클래스의 속성과 메서드이렇게 프로그래밍 방법을 객체지향(object oriented) 프로그래밍이라고 합니다. 객체지향 프로그래밍은 복잡한 문제를 잘게 나누어 객체로 만들고, 객체.. 2026. 1. 26.
클로저 1. 변수의 사용 범위 알아보기전역 변수(global variable)함수를 포함하여 스크립트 전체에서 접근할 수 있는 변수를 전역 변수(global variable)라고 부릅니다. 특히 전역 변수에 접근할 수 있는 범위를 전역 범위(global scope)라고 합니다. 지역 변수(local variable)변수 x는 함수 foo 안에서 만들었기 때문에 foo의 지역 변수(local variable)입니다. 따라서 지역 변수는 변수를 만든 함수 안에서만 접근할 수 있고, 함수 바깥에서는 접근할 수 없습니다. 특히 지역 변수를 접근할 수 있는 범위를 지역 범위(local scope)라고 합니다.x = 10 # 전역 변수def foo(): print(x) # 전역 변수 출력 foo.. 2026. 1. 25.
람다 표현식 1. 람다 표현식 사용하기람다 표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다. >>> def plus_ten(x):... return x + 10...>>> plus_ten(1)11 lambda 매개변수들: 식>>> lambda x: x + 10 at 0x02C27270> 실행을 해보면 함수 객체가 나오는데, 이 상태로는 함수를 호출할 수 없습니다.왜냐하면 람다 표현식은 이름이 없는 함수를 만들기 때문입니다.그래서 람다 표현식을 익명 함수(anonymous function)로 부르기도 합니다.lambda로 만든 익명 함수를 호출하려면 다음과 같이 람다 표현식을 변수에 할당해주면 됩니다.>>> plus_ten = lambda x: x + 10>>> plus_.. 2026. 1. 25.
재귀호출 1. 함수에서 재귀호출 사용하기def hello(): print('Hello, world!') hello() hello() Hello, world!Hello, world!Hello, world!...(생략)Traceback (most recent call last): File "C:\project\recursive_function_error.py", line 5, in hello() File "C:\project\recursive_function_error.py", line 3, in hello hello() File "C:\project\recursive_function_error.py", line 3, in hello hello() File "C:\project\r.. 2026. 1. 25.
함수 1. 빈 함수 만들기내용이 없는 빈 함수를 만들 때는 코드 부분에 pass를 넣어줍니다.def hello(): pass 2. 함수 독스트링 사용하기파이썬에서는 함수의 :(콜론) 바로 다음 줄에 """ """(큰따옴표 세 개)로 문자열을 입력하면 함수에 대한 설명을 넣을 수 있습니다. 이런 방식의 문자열을 독스트링(문서화 문자열, documentation strings, docstrings)이라고 합니다. 단, 독스트링의 윗줄에 다른 코드가 오면 안 됩니다.def 함수이름(매개변수): """독스트링""" 코드 def 함수이름(매개변수): """ 여러 줄로 된 독스트링 """ 코드 독스트링은 ' '(작은따옴표), " "(큰따옴표), ''' '''(작은따옴표 세 개.. 2026. 1. 25.