파이썬의 객체

黄舟
黄舟원래의
2017-01-19 17:16:311670검색

객체: 프로그램에서 사용되는 모든 값은 객체입니다. 객체는 내부 속성과 메소드로 구성됩니다. 이러한 메소드는 이전에 목록 유형 데이터를 조작할 때 사용한 메소드입니다. >

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: 데코레이터 사용: 메소드를 정적 메소드로 정의

위는 Python 객체의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


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