객체: 프로그램에서 사용되는 모든 값은 객체입니다. 객체는 내부 속성과 메소드로 구성됩니다. 이러한 메소드는 이전에 목록 유형 데이터를 조작할 때 사용한 메소드입니다. >
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);
data.__add__([3,4,5])
객체 지향 프로그래밍에서 클래스 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);
메서드는 클래스의 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);
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: 데코레이터 사용: 메소드를 정적 메소드로 정의