>  기사  >  백엔드 개발  >  Python 클래스 인스턴스 분석에 대한 자세한 설명

Python 클래스 인스턴스 분석에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-26 10:04:121812검색

본 글은 파이썬 클래스 내용과 예시를 중심으로 소개하고 있으니 필요한 친구들은

파이썬 클래스 내용

클래스

1. 클래스는 인스턴스를 생성하는 데 사용할 수 있는 데이터 구조입니다. (일반적으로 클래스는 해당 데이터에 사용할 수 있는 데이터와 메서드를 캡슐화합니다.)

2. Python 클래스는 호출 가능한

객체, 즉 클래스 객체입니다

3. 클래스는 일반적으로 모듈의 최상위 수준에서 정의되므로 클래스가 정의된 소스 코드 파일의 어느 위치에서나 클래스 인스턴스를 만들 수 있습니다.

4. 인스턴스 초기화

  1. 인스턴스 =

    클래스이름(args....)

  2. 클래스는 인스턴스화할 때 init와 del이라는 두 가지 특수 메서드를 사용할 수 있습니다.

  3.  class ClassName(base):
    'class documentation string' #类文档字符串
     class suite        #类体
  1. 기본: 슈퍼클래스는

    상속 하는 데 사용되는 하나 이상의 상위 클래스

  2. 모음입니다.
  3. 클래스 본문에는 다음이 포함될 수 있습니다: 선언문, 클래스 멤버 정의, 데이터

    속성, 메서드

  4. 클래스에 상속 관계가 없는 경우 값 ​​괄호 안은 제공되지 않습니다. base

  5.  class FirstClass():
      spam = 30    #类数据属性
      def display(self): #类方法
       print self.spam
     x = FirstClass()   #创建类实例
     x.display()     #方法调用
     >>> 30
     dir(FirstClass)
     >>> ['doc', 'module', 'display', 'spam']
  • class 문은 def와 유사하며 실행 가능한 코드입니다. class 문이 실행됩니다

  • class 문 내에서 모든 할당 문은 클래스 속성을 생성합니다

  • 각 인스턴스 객체는 클래스의 속성을 상속합니다. 자체 네임스페이스 가져오기

Python 클래스 메서드 및 호출

인스턴스(객체)에 포함된 속성

  • 호출 가능한 속성: 메소드

  • 데이터 속성

OOP에서 인스턴스는 "데이터"가 포함된 레코드와 같습니다. " 및 클래스는 이러한 레코드를 처리하는 프로그램입니다.

  • 인스턴스를 통해 메서드를 호출하는 것은 현재 인스턴스를 처리하기 위해 해당 클래스의 메서드를 호출하는 것과 같습니다. 예를 들어 이전 코드 예제에서 x.display()는 자동으로 FirstClass.display(x)로 변환됩니다. 즉, 클래스의 메서드가 호출되어 x

  • 인스턴스를 처리합니다.
  • 따라서 각 메소드에는 현재 인스턴스의 의미를 암시하는 self 매개변수가 있어야 합니다.

  • 메서드 내에서 self 속성에 대한 할당 작업은 해당 인스턴스에 대한 자체 속성을 생성합니다. 각 인스턴스

  • 파이썬에서는 인스턴스 없이 메소드를 호출할 수 없다고 규정하고 있습니다. 이것이 바로 '바인딩' 개념입니다

  • 대입문입니다. 예를 들어 이전 예에서 spam

  • 클래스 메서드의 메서드에 전달된 특수 매개변수 self에 값을 할당하면 인스턴스가 생성됩니다. 속성

Python 생성자

가 인스턴스를 생성할 때 Python은 자동으로 클래스의 init 메서드를 호출하여 인스턴스에 대한 속성을 눈에 보이지 않게 제공합니다. .

  1. init 메소드는 생성자라고 합니다.

  2. 클래스에 정의된 init 메소드가 없으면 인스턴스는 처음에 단순으로 생성됩니다. 네임스페이스.

  3. init의 첫 번째 매개변수는 self여야 하며, self

    변수 는 클래스 인스턴스 메서드에서 해당 메서드가 바인딩된 인스턴스를 참조하는 데 사용됩니다. 메소드의 인스턴스는 항상 메소드 호출의 첫 번째 인수로 전달되므로 인스턴스를 나타내기 위해 self가 선택되었습니다. 메소드 선언에 self를 반드시 넣어야 하지만, 인스턴스(self) 없이도 메소드를 사용할 수 있습니다. 메서드에 self를 사용하지 않는 경우 특별한 이유가 없는 한 일반 함수를 만드는 것을 고려해 보세요. 결국, 메소드 코드는 인스턴스를 사용하지 않고 클래스와 연관된 기능이 없으므로 일반 함수처럼 보입니다. 다른 객체지향 언어에서는 self를 이렇게 부를 수도 있습니다.

class MyClass():
 def init(self, name):
  self.name = name
  print 'My name is ' + self.name
 def del(self):
  print self.name + ' is dead.'
i1 = MyClass('Shaw')
>>> My name is Shaw
del i1
>>> Shaw id dead.

类的特殊属性

  • 使用dir()或dict,查看类或实例的属性

  • doc:获取文档字符串

  • base:获取所有父类

  • module:类所在的模块

  • name:实例所属类的名字

Python类方法中可用的变量

  • 实例变量:self.变量名

  • 局部变量:方法内部创建的变量,可直接使用

  • 静态变量:类中定义的变量。类名.变量名

  • 全局变量:直接使用

继承

继承描述了基类的属性如何‘遗传'给派生类

  1. 子类可以继承他的基类的任何属性,包括数据属性和方法

  2. 一个未指定基类的类,其默认有一个叫object的基类

  3. Python允许多重继承(可以继承多个父类)

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

위 내용은 Python 클래스 인스턴스 분석에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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