Python/공부

파이썬 함수(function)와 메서드(method)의 차이

끈끈 2023. 3. 22. 10:53

 

함수(function)

 

함수명()

 

len(), int(), str() 등 어떠한 기능을 수행하는 친구

 

클래스 및 객체와 상관없이 독립적으로 존재함

 

함수의 값을 변수에 대입 가능 즉 매개변수를 통해 자료 전달

 

output = function_name(input)

 

크게 4가지로 나뉜다:

 

  • 내장 함수
  • 외장 함수
  • 사용자 정의 함수 : 크게 보면 외장 함수라 할 수 있음
  • 익명 함수(람다)

 

함수를 만드는 방법:

 

def 함수명(입력값):
	수행문
    return 출력값

 

콜론(:)과 들여쓰기를 해야한다. return은 필수가 아님

 

인자와 출력값이 없는 함수도 만들 수 있음

 

# 인자값O, 출력값X
def test1(a):
    print(a, '는 학생입니다.')

test1('홍길동')  # 홍길동 는 학생입니다.


# 인자값X, 출력값XO
def test2():
    return '는 학생입니다.'

print('홍길동', test2())  # 홍길동 는 학생입니다.


# 인자값O, 출력값O
def add(a, b):
    c = a + b
    return c

print('1더하기 2는?', add(1, 2))  # 1더하기 2는? 3

 


 

메서드(method)

 

object.method_name()

 

메서드 역시 어떠한 기능을 수행하지만, 특정 자료에 대한 특정기능이다

 

students.sort(), students.append() 등

 

클래스 및 객체와 연관되어 있는 함수 (따라서 . 으로 연결)

 

클래스 내에 선언되어 있어 해당 클래스에 종속되며 클래스를 호출해야 함

 

클래스의 형태: 콜론(:)과 들여쓰기

 

class classname:
	내용

 

클래스의 어트리뷰트를 참조

 

어트리뷰트 : attribute, 클래스 내부에 포함되어 있는 함수(메서드)나 변수 등

 

#변수인 경우
클래스이름.어트리뷰트이름

#함수(메서드)인 경우
클래스이름.어트리뷰트이름(입력)

 

인스턴스 객체 생성

 

인스턴스 : instance, 클래스에 의해 만들어진 객체로서

 

단독으로 지칭할 때는 객체, 클래스와 연관지어 지칭할 때는 클래스의 인스턴스

 

인스턴스객체이름=클래스객체이름

 

그 외, 자바에서는 함수를 보통 메서드라고 한다

 

자바는 객체지향언어이고 무조건 클래스를 선언하기 때문에

 

그 안에 있는 함수들은 모두 클래스에 종속되어 있는 것.

 


 

함수 > 메서드

 

모듈(module)

 

전역변수, 함수, 클래스 등을 모아놓은 .py 확장자를 가진 파일

 

import 모듈명

dir(모듈명) #그 모듈 내의 데이터나 함수를 알아낼 수 있음

모듈명.함수명() #모듈 내의 함수 사용법

 

패키지(package)

 

모듈을 모아놓은 폴더

 

라이브러리(library)는 패키지의 집합이지만 패키지를 라이브러리라고도 부른다