본문 바로가기

작업 공간/프로그래밍 [파이썬 기초] 7. 함수와 클래스

by 서울나기 2020. 1. 22.

1. 함수 function

앞서서 우리는 알게 모르게 print() 같은 함수를 써왔다. ( 괄호 ) 안에 값을 넣으면 짠~ 하고 결과물이 나온다. 값을 넣으면 결과를 만들어주는 마법 상자 같은 개념이다. 함수는 재사용과 관리의 편의성, 그리고 레고 블럭 같이 조립해서 사용 할 수 있다는 장점이 있다.

def 함수이름(인자1, ...):
   실행할 명령1
   실행할 명령1
         ...
   return 결과1, 결과2, ...
def 대사(이걸말하게): #변수명을 한글로 해봤다.
    print(이걸말하게)

대사("우다다다")
대사("하지마라")
대사("고양아")

# 리턴 값이 있는 경우
def my_sum(n1, n2): # my_sum에 n1, n2를 받는다.
	return n1 + n2, n1 * n2 # 더한 값을 첫번째에 곱한 값을 두번째 인자에 넣는다.

print(my_sum(1, 2)) # (3, 2) 출력

 

* Docstring

주로 함수의 기능을 설명하는 주석을 말한다. """ 큰따옴표 """ 3개를 많이 사용한다.

def my_sum(n1, n2):
	""" 두개의 입력 값을 더하고 곱하는 함수 """
	return n1 + n2, n1 * n2

print(my_sum(1, 2)) # (3, 2) 출력

2. 클래스 class

클래스는 이러한 함수와 변수들을 묶어 하나의 정의를 내린 개념이다. 클래스 이름은 보통 대문자로 시작한다. 만들어진 클래스에서 함수를 불러올 때는 . 콤마를 사용한다.

class 클래스이름:
    함수1
    함수2
      ...
# 기본 예제
class Person:
    def say_hello(self):
        print("안녕")
        
p = Person()
p.say_hello() # 안녕 출력

# self 인자는 변수를 활용해야 할 때 사용한다.
class Person:
    def __init__(self, name):
        self.name = name
    
    def say_hello(self, to_name):
        print(f'안녕. {to_name}! 나는 {self.name}!')
        
팽수 = Person('팽수')
ebs = Person('ebs')
팽귄 = Person('팽귄')

팽수.say_hello('ebs')
ebs.say_hello('팽수')
팽귄.say_hello('유튜버')


# __init__(self)
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def say_hello(self, to_name):
        print(f'안녕. {to_name}! 나는 {self.name}!, 나이는 {str(self.age)}살이야!')
        
팽수 = Person('팽수', 10)
팽수.say_hello('ebs')

 

클래스 상속

공통된 클래스가 있고, 그 밑에 세부 클래스를 새로 만들고 싶을 때 상속이 사용된다. 상속된 클래스안에 포함된 함수를 다른 클래스가 사용할 수 있다.

class 클래스이름(상속할클래스이름):
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def say_hello(self, to_name):
        print(f'안녕. {to_name}! 나는 {self.name}!, 나이는 {str(self.age)}살이야!')

class Ebs(Person):
    def arrest(self, to_arrest):
        print(f'넌 체포됐다, {to_arrest}.')

class Programmer(Person):
    def programmer(self, to_program):
        print(f'파이썬으로 다음에는 {to_program}을 만들자.')

팽수 = Person("팽수", 10)
ebs = Ebs("EBS", 20)
pro = Programmer("서울나기", 5)

팽수.say_hello("바보")
ebs.arrest("팽귄")
pro.programmer("웹")

결과 값

댓글