>  기사  >  백엔드 개발  >  Zhonggu Education Python 비디오 튜토리얼 리소스 추천

Zhonggu Education Python 비디오 튜토리얼 리소스 추천

黄舟
黄舟원래의
2017-09-01 14:22:051666검색

"중구 교육 파이썬 영상 튜토리얼"은 파이썬 개발 입문 튜토리얼로, 파이썬 언어의 특징과 적용 범위, 파이썬의 기본 데이터 유형, 조건부 판단과 루프, 함수, 파이썬 고유의 슬라이싱 및 리스트 생성 공식을 소개합니다. . 이 Python 튜토리얼을 통해 여러분이 빠르게 시작하고 간단한 Python 프로그램을 작성하는 데 도움이 되기를 바랍니다.

Zhonggu Education Python 비디오 튜토리얼 리소스 추천

강좌 재생 주소: http://www.php.cn/course/501.html

선생님의 강의 스타일:

선생님의 강의는 간단하고 깊이 있고 명확합니다. 논리적 사고력을 사용하여 학생들의 관심을 끌고 이성을 사용하여 교실 교육 과정을 제어합니다. 선생님의 강의를 들으면서 학생들은 지식을 배울 뿐만 아니라 사고력도 훈련받고 선생님의 엄격한 학문적 태도에 영향을 받고 영향을 받습니다

이 영상에서 더 어려운 부분은 객체지향 - 수업과 객체입니다 :

파이썬의 모든 것은 객체입니다. 클래스는 새로운 유형의 객체를 생성하기 위한 메커니즘을 제공합니다. 이 튜토리얼에서는 클래스와 객체 지향 프로그래밍에 대한 기본 지식에 대해 이야기하지 않고 Python 객체 지향 프로그래밍을 더 잘 이해하는 데 중점을 둡니다. 객체 상위 클래스에서 상속되는 새로운 스타일의 Python 클래스를 사용한다고 가정해 보겠습니다.
클래스 정의

class 문은 클래스의 인스턴스 객체가 공유하는 일련의 속성, 변수 및 메서드를 정의할 수 있습니다. 간단한 클래스 정의는 다음과 같습니다.

class Account(object):
  num_accounts = 0
  
  def __init__(self, name, balance):
   self.name = name
   self.balance = balance
   Account.num_accounts += 1
  
  def del_account(self):
   Account.num_accounts -= 1
  
  def deposit(self, amt):
   self.balance = self.balance + amt
  
  def withdraw(self, amt):
   self.balance = self.balance - amt
  
  def inquiry(self):
   return self.balance


클래스 정의에는 다음과 같은 새로운 객체가 도입됩니다.

클래스 객체
인스턴스 객체
메소드 객체

클래스 객체

프로그램 실행 중에 클래스 정의를 발견할 때 , 모든 클래스 변수 및 메서드 정의에 대한 이름 바인딩을 포함하는 새 네임스페이스가 생성됩니다. 이 네임스페이스는 클래스 메서드가 사용할 수 있는 새로운 로컬 범위를 생성하지 않으므로 메서드 내의 변수에 액세스하려면 정규화된 이름이 필요합니다. 이전 섹션의 Account 클래스는 이 기능을 보여줍니다. num_of_accounts 변수에 액세스하려고 시도하는 메서드는 정규화된 이름 Account.num_of_accounts를 사용해야 합니다. 그렇지 않으면 정규화된 이름이 __init__ 메서드에서 사용되지 않으면 다음 오류가 발생합니다. 제기:

class Account(object):
 num_accounts = 0
  
 def __init__(self, name, balance):
  self.name = name
  self.balance = balance
  num_accounts += 1
  
 def del_account(self):
  Account.num_accounts -= 1
  
 def deposit(self, amt):
  self.balance = self.balance + amt
  
 def withdraw(self, amt):
  self.balance = self.balance - amt
  
 def inquiry(self):
  return self.balance
  
>>> acct = Account('obi', 10)
Traceback (most recent call last):
 File "python", line 1, in <module>
 File "python", line 9, in __init__
UnboundLocalError: local variable &#39;num_accounts&#39; referenced before assignment

클래스 정의 실행이 끝나면 클래스 객체가 생성됩니다. 이제 클래스 정의를 입력하기 전에 적용되었던 범위가 복원되고 클래스 개체가 클래스 정의 헤더의 클래스 이름에 바인딩됩니다.

주제에서 벗어나 먼저 생성된 클래스가 객체인지 물어볼 수 있으며, 객체의 클래스는 무엇입니까? . 모든 것이 객체라는 Python 철학에 따라 클래스 객체에는 Python의 새로운 스타일 클래스의 유형 클래스인 클래스가 있습니다.

>>> type(Account)
<class &#39;type&#39;>

좀 더 혼란스럽게 하자면, Account 유형의 유형은 type입니다. 유형 클래스는 다른 클래스를 생성하는 데 사용되는 메타클래스이며, 이는 튜토리얼의 뒷부분에서 소개하겠습니다.

클래스 객체는 속성 참조 및 인스턴스화를 지원합니다. 속성은 표준 점 구문을 통해 참조됩니다. 즉, 개체 뒤에 마침표가 오고 그 뒤에 속성 이름(obj.name)이 옵니다. 유효한 속성 이름은 클래스 객체가 생성된 후 클래스 네임스페이스에 나타나는 모든 변수 및 메서드 이름입니다. 예:

>>> Account.num_accounts
>>> 0
>>> Account.deposit
>>> <unbound method Account.deposit>

클래스 인스턴스화는 함수 표기법을 사용합니다. 인스턴스화는 아래 Account 클래스와 같은 일반 함수처럼 매개변수 없이 클래스 객체를 호출합니다.

>>> Account()

클래스 객체가 인스턴스화되면 인스턴스 객체가 반환됩니다. 클래스에 __init__ 메서드가 정의되어 있으면 인스턴스 객체가 반환됩니다. 첫 번째 매개변수가 전달되면서 인스턴스 객체가 사용됩니다. 이 메소드는 인스턴스 변수 초기화와 같은 사용자 정의 초기화 프로세스를 수행합니다. 예를 들어 Account 클래스의 경우 계정 이름과 잔액이 설정되고 인스턴스 개체 수가 1개 증가합니다.
인스턴스 개체

클래스 개체가 쿠키 커터인 경우 쿠키는 클래스 개체를 인스턴스화한 결과입니다. 인스턴스 객체에 대한 모든 유효한 작업은 속성, 데이터 및 메서드 객체에 대한 참조입니다.
메소드 개체

메서드 개체는 함수 개체와 유사합니다. x가 Account 클래스의 인스턴스인 경우 x.deposit는 메소드 객체의 예입니다. 메소드 정의에는 self라는 추가 매개변수가 있습니다. self는 클래스 인스턴스를 가리킵니다. 인스턴스를 메소드에 매개변수로 전달해야 하는 이유는 무엇입니까? 메서드 호출이 가장 잘 설명됩니다.

>>> x = Account()
>>> x.inquiry()
10

인스턴스 메서드가 호출되면 어떻게 되나요? 메소드 정의에 self 매개변수가 포함되어 있지만 x.inquiry()는 매개변수 없이 호출된다는 점에 유의해야 합니다. 그렇다면 이 매개변수에 정확히 무슨 일이 일어나고 있는 걸까요?

특별한 점은 메소드에 의해 작동되는 객체가 함수의 첫 번째 매개변수로 전달된다는 것입니다. 이 예에서 x.inquiry()에 대한 호출은 Account.f(x)와 동일합니다. 일반적으로 n개의 매개변수가 있는 메소드를 호출하는 것은 메소드의 조치 객체를 첫 번째 매개변수 위치에 삽입하는 것과 같습니다.

위 내용은 Zhonggu Education Python 비디오 튜토리얼 리소스 추천의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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