파이썬 방식이란 무엇인가요?
메서드는 객체의 동작을 설명하는 데 사용됩니다.
클래스에 정의된 메서드는 크게 퍼블릭 메서드, 프라이빗 메서드, 정적 메서드, 클래스 메서드의 네 가지 범주로 나눌 수 있습니다.
퍼블릭 메소드와 프라이빗 메소드는 일반적으로 객체에 속하는 인스턴스 메소드를 지칭합니다.
프라이빗 메소드의 이름은 두 개의 밑줄 __로 시작합니다.
각 객체에는 고유한 공개 메소드와 비공개 메소드가 있으며, 클래스와 객체에 속한 멤버는 이 두 가지 메소드로 액세스할 수 있습니다.
Public 메서드는 개체 이름을 통해 직접 호출할 수 있습니다.
Private 메서드는 개체 이름을 통해 직접 호출할 수 없으며, Python에서 지원하는 특수 메서드를 통해서만 외부적으로 호출할 수 있습니다.
클래스의 모든 인스턴스 메서드에는 self라는 매개 변수가 하나 이상 있어야 하며 메서드의 첫 번째 형식 매개 변수여야 합니다. self 매개 변수는 개체 자체를 나타냅니다.
클래스의 인스턴스 메소드에서 인스턴스 속성에 접근할 때 self 접두어를 붙여야 하지만, 객체 이름을 통해 외부에서 객체 메소드를 호출할 때는 이 매개변수를 전달할 필요가 없습니다. 클래스 이름을 외부적으로 명시적으로 지정해야 합니다. 이 메서드는 액세스할 개체의 데이터 멤버를 명확하게 지정하기 위해 개체 이름을 self 매개 변수로 전달합니다.
정적 메서드와 클래스 메서드 모두 클래스 이름과 개체 이름을 통해 호출할 수 있지만 개체에 속한 멤버에 직접 액세스할 수는 없고 클래스에 속한 멤버에만 액세스할 수 있습니다. 일반적으로 cls는 클래스 메서드의 첫 번째 매개 변수로 사용되며 클래스 자체를 나타냅니다. 클래스 메서드를 호출할 때 이 매개 변수에 대한 값을 전달할 필요가 없습니다.
권장: "python tutorial"
>>>class Root: __total = 0 def __init__(self, v): #构造函数 self.__value = v Root.__total + = 1 def show(self): #普通实例方法 print(‘self.__value:’,self.__value) print(‘Root.__total:’,Root.__total) @classmethod #修饰器,声明类方法 def classShowTotal(cls): #类方法 print(cls.__total) @staticmethod #修饰器,声明静态方法 def staticShowTotal(): #静态方法 print(Root.__total) >>>r = Root(3) >>>r.classShowTotal() #通过对象来调用类方法 1 >>>r.staticShowTotal() #通过对象来调用静态方法 1 >>>r.show() self.__value:3 Root.__total:1 >>>rr = Root(5) >>>Root.classShowTotal() #通过类名调用类方法 2 >>>Root.staticShowTotal() #通过类名调用静态方法 2 >>>Root.show() #通过类名直接调用实例方法,报错
오류 보고
>>>Root.show(r) #调用方法并访问实例成员 self.__value:3 Root.__total:2 >>>r.show() self.__value:3 Root.__total:2 >>>Root.show(rr) #通过类名调用实例方法时为 self 参数显式传递对象名 self.__value:5 Root.__total:2 >>>rr.show() self.__value:5 Root.__total:2
참고: 서로 다른 개체 인스턴스의 데이터 멤버는 서로 영향을 주지 않으며 공유되지 않습니다. 그러나 동일한 클래스의 모든 인스턴스 메소드는 서로 다른 객체 간에 공유됩니다. 모든 객체는 동일한 코드를 실행하며 self 매개변수는 처리할 객체의 데이터를 결정하는 데 사용됩니다.
파이썬에서는 함수와 메소드에 차이가 있습니다. 메소드는 일반적으로 특정 인스턴스에 바인딩된 함수를 의미합니다. 메소드가 객체를 통해 호출되면 객체 자체가 첫 번째 매개변수로 전달됩니다. 일반 함수에는 이 기능이 없습니다.
아아아아위 내용은 파이썬 방식이 뭐야?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!