기초 용어 - 1
| 용어 | 의미 | 예시 |
|---|
| 함수(Function) | 코드 블록. 입력 → 처리 → 출력 구조 | add |
| 매개변수(Parameter) | 함수를 정의할 때 입력값을 받는 변수 | a, b |
| 인자(Argument) | 함수를 호출할 때 실제로 전달하는 값 | 3, 5 |
| 반환(Return) | 함수가 실행된 후 내보내는 값 | return a + b → 8 |
| 함수 호출(Call) | 함수를 실행하는 행위 | add(3, 5) |
| 결과(Result) | 호출 후 받은 값 | result = 8 |
함수(def)
def add(a, b):
return a + b
result = add(3, 5)
def 계산(a, b, c):
합계 = a*1000 + b*500 + c*100
return 합계
print(계산(5, 2, 3), '원입니다.')
----------------------------------
def 계산(a, b, c):
return a*1000 + b*500 + c*100
print(계산(5, 2, 3), '원입니다.')
- 이 두경우 모두 결과는 같지만 차이는 읽기 쉽게 하느냐 코드를 짧게 하느냐의 차이이다.
def function(x, y):
z = x + y
print(z)
print('옥수수와 수박의 수확량 :', function(10, 2))
옥수수와 수박의 수확량 : None
---------------------------------------------------------------
def function(x, y):
z = x + y
return z
print('옥수수와 수박의 수확량 :', function(10, 2))
기초용어 - 2
| 용어 | 의미 | 예시 |
|---|
| 클래스(Class) | 설계도(붕어빵 틀). 객체를 만드는 틀 | Student |
| 생성자(Constructor) | 객체 생성 시 자동 실행되는 메서드 | __init__ |
| 인스턴스(Instance) | 클래스로부터 실제로 만들어진 개별 객체 | student1,2 |
| 인스턴스 변수 | 인스턴스마다 따로 갖는 변수 | self.name |
| 인스턴스 메서드 | 인스턴스가 사용하는 함수 | greeting() |
| 클래스 변수 | 클래스 전체가 공유하는 변수 | Student.school_name |
| 클래스 메서드 | 클래스 자체를 다루는 메서드(@classmethod) | set_school_name() |
| 정적 메서드 | 인스턴스/클래스와 상관없는 유틸 함수(@staticmethod) | calc_avg() |
| 메서드 호출 | 인스턴스를 통해 메서드를 실행하는 행위 | student.greeting() |
클래스(class)
class Student:
school_name = "파이썬고등학교"
def __init__(self, name):
self.name = name
def greeting(self):
return f"안녕하세요, {self.name}입니다. {Student.school_name} 학생이에요."
student1 = Student("철수")
student2 = Student("영희")
print(student1.greeting())
print(student2.greeting())
print(Student.school_name)
-------------------------------------------------------------------------
class Student:
def __init__(self):
pass
student = Student()
student = Student() , student1 = Student("철수")
- 이 두개의 차이는
__init__(self, name) / __init__(self, name) 이다
__init__(self, name)
여기서는 name가 필요하기 때문에 값이 들어간 것.
클래스 안에 있는 함수 → "메서드"라고 부름
클래스 밖에 있는 함수 → 그냥 "함수"
클래스에 정의된 기능(속성, 메서드)을 사용하려면 반드시 객체를 생성해야 합니다.
class Person:
def __init__(self):
self.hello = "안녕하세요"
def greeting(self):
print(self.hello)
호출 = Person()
호출.greeting()
- Person이라는 클래스 정의 시작 : 클래스는 객체를 만들기 위한 설계도 역할을 해요.
- greeting이라는 인스턴스 메서드 정의.
- 이 메서드를 호출하면 self.hello를 출력합니다.
- 호출 = Person() → 객체 생성 + init만 실행 → 호출.hello = "안녕하세요"
- 호출.greeting() → "안녕하세요" 출력. : 여기부터 호출.hello 변수 생성
- 그 이후부터 밑에 함수들을 매서드로 사용 가능
class Person:
def __init__(self, name):
self.name = name
self.hello = "안녕하세요"
def greeting(self):
print(f"{self.hello}, 저는 {self.name}입니다.")
철수 = Person("철수")
print(철수.hello)
철수.greeting()
- 속성(호출.hello)은 데이터만 보여줌
- 메서드(호출.greeting())는 그 데이터를 활용해서 "행동"을 실행
class Person:
def __init__(self, name, age, address):
self.hello = '안녕하세요.'
self.name = name
self.age = age
self.address = address
def greeting(self):
print('{0} 저는 {1}입니다.'.format(self.hello, self.name))
maria = Person('마리아', 20, '서울시 서초구 반포동')
maria.greeting()
print('이름:', maria.name)
print('나이:', maria.age)
print('주소:', maria.address)
- self.hello는 항상 "안녕하세요."로 정해져 있어서 객체를 만들 때 매개변수로 안 받아도 됨.
- print('{0} 저는 {1}입니다.'.format(self.hello, self.name))
- {0}, {1}은 자리 표시자(placeholder)
- .format()에 들어가는 값들이 순서대로 채워집니다.
- {0} → self.hello 값 (즉, '안녕하세요.') / {1} → self.name 값 (즉, '마리아')
라이브러리
- 개발자가 자주 사용하는 기능들을 미리 코드로 묶어놓은 모음집