>백엔드 개발 >파이썬 튜토리얼 >파이썬 함수와 메소드의 차이점

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

(*-*)浩
(*-*)浩원래의
2019-06-22 17:42:462872검색

이 글에서는 주로 Python의 함수와 메서드의 차이점을 여러 차원에서 소개합니다.

파이썬 함수와 메소드의 차이점먼저 분류의 관점에서 분석해 보겠습니다.

(1) 기능 분류: (추천 학습: Python 동영상 튜토리얼)

내장 기능: 일부 기능은 Python에 내장되어 있습니다.

익명 함수: 한 줄의 코드로 함수 함수를 구현합니다.

재귀 함수

사용자 정의 함수: 필요에 따라 함수를 정의합니다.

(2) 메소드 분류:

일반 메소드: self로 직접 호출되는 메소드.

프라이빗 메서드: __함수 이름, 클래스에서만 호출할 수 있는 메서드입니다.

Property 메소드: @property, 코드를 더욱 합리적으로 보이도록 메소드를 속성으로 위장합니다.

특수 메서드(이중 밑줄 메서드): __init__을 예로 들면, 인스턴스화된 객체의 속성을 캡슐화하는 데 사용됩니다. 해당 메서드가 없으면 __init 메서드가 실행됩니다. 객체의 하위 클래스인 경우 상위 클래스(슈퍼 클래스)를 검색하고, 상위 클래스(슈퍼 클래스)가 없으면 객체(파이썬 3.x) 클래스를 직접 상속받아 해당 클래스에서 __init__ 메소드를 실행합니다. 클래스 메서드: 클래스 이름을 호출하여 공개 템플릿의 속성과 메서드를 작동합니다.

정적 메서드: 클래스 공간이나 개체 메서드를 전달할 필요가 없습니다. 이 함수는 코드의 일관성과 표준화를 보장하기 위한 것입니다. 클래스 외부에서는 완전히 독립적인 메서드일 수 있지만 코드 일관성을 위해서입니다. , 특정 모듈(py 파일)에 넣을 수 있습니다.

둘째, 범위 관점에서 분석합니다:

(1) 함수 범위: 함수 호출 시작부터 함수 실행 완료까지, 호출자에게 반환된 후 실행 과정에서 열린 공간은 즉, 함수가 실행된 후 함수 본체 내부에서 할당이나 기타 메소드를 통해 수정된 변수의 값은 유지되지 않고, 열린 공간은 호출자에게 반환된 후 자동으로 해제됩니다.

(2) 메소드 범위: 인스턴스화된 객체를 통해 메소드를 호출하면 호출 후 열린 공간이 해제되지 않습니다. 즉, 호출 메소드에서 수정된 변수 값이 항상 유지됩니다.

마지막으로 전화하는 방법이 다릅니다.

(1) 함수 : "함수명()"을 통해 호출됩니다.

(2) 메소드: "object.method 이름"을 통해 호출됩니다.

class Foo(object):
    def func(self):
        pass

#实例化
obj = Foo()

# 执行方式一:调用的func是方法
obj.func() #func 方法

# 执行方式二:调用的func是函数
Foo.func(123) # 函数

Python 관련 기술 기사를 더 보려면 Python Tutorial 칼럼을 방문하여 알아보세요!

위 내용은 파이썬 함수와 메소드의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.