객체: 프로그램에서 사용되는 모든 값은 객체입니다. 객체는 내부 속성과 메소드로 구성됩니다. 이러한 메소드는 이전에 목록 유형 데이터를 조작할 때 사용한 메소드입니다. >
data = [37,34]; data.insert(1,25); data.append(23) print(data);출력 결과:
37,25,34,23
dir() 함수는 객체에서 사용 가능한 메서드를 나열할 수 있으며 대화형 경험을 위한 도구입니다.
dir(data)출력 결과:
['__add__', '__class__', '__contains__', ...'append', 'clear', 'copy', 'count', 'extend', 'index' , ' insert', 'pop', 'remove', 'reverse', 'sort']
dir() 함수를 사용하여 객체의 메소드를 보면 시작하고 시작하는 특별한 메소드가 많이 있음을 알 수 있습니다. 밑줄로 끝나는 메소드 이러한 메소드는 다양한 작업을 구현하는 데 사용됩니다.
예:
data = data +[3,4,50]; print(data);Python의 + 연산자는 실제로 다음 작업을 수행합니다.
data.__add__([3,4,5])참고: 두 개 객체가 먼저 덧셈 연산을 수행할 수 있는지 여부는 해당 객체에 __add__() 메서드가 있는지 여부에 따라 달라집니다. 그렇다면 객체가 수학적으로 비가산적이라 하더라도 정의된 연산을 덧셈의 형태로 표현할 수 있으므로 결론을 내릴 수 있습니다. 결론: Python의 __add__와 같은 매직 메서드는 일반적으로 다른 동작을 정의합니다. __add__의 해당 동작은 + 연산 또는 연결입니다.
객체 지향 프로그래밍에서 클래스 objName 클래스: 객체의 클래스를 정의합니다. 클래스 이름
class Stack(object): def __init__(self): #__init__ 构造器,当一个实例被创建的时候 调用的初始化方法 self.stack = []; def push(self,object): self.stack.append(object); def pop(self): return self.stack.pop(); def length(self): return len(self.stack);Stack 클래스를 정의할 때 Stack(object) 구문 클래스는 Stack을 객체로 선언합니다. 괄호는 Python의 상속 지정 방식입니다. 따라서 Stack 클래스는 모든 Python 유형 중 하나입니다. type
메서드는 클래스의 def 구문을 사용하여 정의됩니다. 각 메서드의 첫 번째 매개변수 self는 항상 객체 자체를 가리킵니다.
self 변수: 객체와 관련된 모든 작업은 self 변수를 참조해야 합니다.
사용 방법 스택?
s = Stack(); s.push("Dave"); s.push([3,4,5,6]); s.push(32); x = s.pop();출력 결과
32
y = s.pop();출력 결과:
[3, 4, 5, 6]
append() 메소드: Python에서 이 메소드의 목록 As 장에서 소개한 대로 목록 끝에 요소를 추가하는 데 사용됩니다.
pop() 메서드: 목록 끝에서 요소를 삭제하고 해당 요소를 반환하는 데 사용됩니다.
len() 함수: 반환 목록의 요소 Number
Stack 클래스는 실제로 스택을 구현하기 위해 완전히 새로운 개체를 생성하지만 스택은 내장 목록 개체와 거의 동일하므로 목록을 직접 상속한 다음 추가 메서드를 추가할 수 있습니다
class Stack(list): def push(self,object): self.append(object);목록 개체를 상속할 때 목록 개체의 Stack 개체 메서드를 직접 사용할 수 있습니다.
s = Stack(); s.push(66); s.push(65); s.push(64); s.push(63);출력 결과:
[66, 65, 64, 63]
s.reverse();#此方法 用于反转列表中元素的顺序출력 결과:
[63, 64, 65, 66]
클래스에서 정적 메서드를 만드는 방법은 무엇입니까?
일반적으로 클래스에 정의된 모든 메소드는 클래스의 인스턴스(생성된 객체)에만 사용되지만 정적 메소드(함수처럼 호출 가능)도 정의할 수 있습니다.
class MyObject(object): @staticmethod def myCheck(): return 'ok'; result = MyObject.myCheck(); print(result);출력 결과:
ok
@staticmethod는 실제로는 함수인 데코레이터(데코레이터)입니다. myCheck 함수를 실행하기 전에 데코레이터의 staticmethod 함수가 먼저 실행되고 myCheck 메서드가 정적 메서드로 정의됩니다.
요약:
1, dir() 메소드: 객체의 모든 메소드를 볼 수 있습니다.
2, 매직 메소드: 이중 밑줄로 시작하고 끝나는 메소드 이 메소드 클래스는 다음과 같은 다양한 동작을 정의합니다. + 연산
3, Python의 클래스 정의 메소드 및 객체 상속 방법: class MyObject(object)
4, @staticmethod: 데코레이터 사용: 메소드를 정적 메소드로 정의