Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 메소드와 함수의 차이점

<시간/>

기능

함수는 특정 작업을 수행하기 위한 코드 블록이며 자체 범위를 포함하며 이름으로 호출됩니다. 모든 함수는 0(no) 인수를 포함하거나 둘 이상의 인수를 포함할 수 있습니다. 종료 시 함수는 하나 이상의 값을 반환할 수 있거나 반환할 수 없습니다.

기본 함수 구문

def functionName( arg1, arg2,….):
   …….
   # Function_body
   ……..

sum(사용자는 원하는 이름을 지정할 수 있음)이라는 매우 간단한 함수인 사용자(사용자)를 만들어 보겠습니다. "sum" 함수에는 num1 및 num2라는 두 개의 인수가 있으며 함수(sum)에 전달된 인수의 합을 반환합니다. 값(인수) 5와 6을 사용하여 함수(sum)를 호출하면 11을 반환합니다.

def sum(num1, num2):
   return (num1 + num2)

출력

>>> sum(5,6)
11

따라서 위에서 'return' 문이 파이썬 함수에서 값을 반환하는 것을 볼 수 있습니다.

이 기능을 사용하면 코드 재사용성을 구현할 수 있습니다. 세 가지 종류의 기능이 있습니다 -

  • 내장 함수( 이름에서 알 수 있듯이 이러한 함수는 Python 언어와 함께 제공됩니다. 예를 들어 help()는 도움을 요청하고 max()는 최대 값을 얻고 type()은 객체 유형을 반환합니다. 등등.)

  • 사용자 정의 함수(위에서 만든 "합" 함수와 같이 사용자가 사용자를 돕기 위해 만드는 함수입니다.

  • 익명 함수(람다 함수라고도 하며 def를 사용하여 정의되는 일반 함수와 달리 키워드는 람다를 사용하여 정의됩니다. 키워드).

방법

파이썬의 메소드는 객체/클래스와 연결된다는 점을 제외하고는 함수와 다소 유사합니다. 파이썬의 메소드는 두 가지 주요 차이점을 제외하고는 함수와 매우 유사합니다.

  • 메서드가 호출된 개체에 대해 암시적으로 사용됩니다.

  • 메서드는 클래스 내에 포함된 데이터에 액세스할 수 있습니다.

일반 메서드 구문

class ClassName:
   def method_name():
      …………..
      # Method_body
      ………………

간단한 코드 하나로 방법을 이해하자 -

class Pet(object):
   def my_method(self):
      print("I am a Cat")
cat = Pet()
cat.my_method()

출력

I am a Cat

위의 코드에서는 먼저 "Pet" 클래스를 정의했습니다. 그런 다음 이 청사진에서 "고양이" 개체를 만들었습니다. 다음으로 객체(예:cat)를 사용하여 my_method라는 사용자 지정 메서드를 호출합니다.

파이썬에서 메소드와 함수의 주요 차이점

기능과 방법 모두에 대한 기본 이해를 얻었으므로 둘 사이의 주요 차이점을 강조해 보겠습니다.

  • 함수와 달리 메서드는 개체에서 호출됩니다. 위의 예에서와 같이 메서드를 .i.e. 객체 "cat"에 대한 "my_method"인 반면 "sum" 함수는 객체 없이 호출됩니다. 또한 메서드가 개체에 대해 호출되기 때문에 개체 내의 해당 데이터에 액세스할 수 있습니다.

  • 객체의 상태를 변경할 수 있는 메소드와 달리 python 함수는 이를 수행하지 않고 정상적으로 작동합니다.

간단히 말해서 메소드는 객체에 속하는 함수입니다.