이 글에서는 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!