Python 기본 문법 소개 - 대상(하), 비정상 처리, 패키지 및 모듈
3658 단어 Python3.6.5토대문법 소개
개요:
지난 절에서는 주로 대상을 대상으로 하는 몇 가지 기본 개념을 소개했다. 그것이 바로 클래스, 클래스의 구성 요소인'방법과 속성', 클래스의 특성인'계승, 다태와 봉인'이다.이 과목은 세 부분으로 나뉜다. (1) 클래스 속성, 클래스 방법과 호출, 정적 방법과 호출, 단일 클래스(二) 이상 처리(三) 패키지와 모듈
제1부분: 클래스 방법, 정적 방법과 단일 클래스
클래스 속성(1) 클래스 속성은 실례의 속성과 구별되고 클래스 속성은 클래스 대상에 속하며 실례 대상에 의해 공유된다(2) 속성 찾기 규칙: 먼저 실례 대상의 실례 속성;하위 클래스 객체의 클래스(?)속성(3) 실례 대상을 통해 클래스 속성의 값을 수정할 수 없다.수정된 속성이 인스턴스에 없는 경우 인스턴스 속성을 동적으로 추가합니다.class Person:
sum_num = 0
def __init__(self):
Person.sum_num += 1 # , , 1
# p1
p1 = Person("zhangsan")
print(p1.sum_num, Person.sum_num)
# , ,
p1.sum_num = 100
print(p1.sum_num, Person.sum_num)
클래스 방법 및 호출
(1) @classmethod로 수식하는 방법을 사용하고 첫 번째 파라미터는cls(2)클래스 방법으로 클래스 속성을 조작한다.실례 방법 조작 실례 대상 속성 (3) 호출 방식: 클래스 이름.클래스 방법();인스턴스 객체.클래스 방법()#이 방법으로는 클래스 방법을 호출하는 것을 추천하지 않습니다.class Date(object):
def __init__(self, day=0, month=0, year=0):
self.day = day
self.month = month
self.year = year
#
@classmethod
def from_string(cls, date_as_string):
day, month, year = map(int, date_as_string.split('-'))
date1 = cls(day, month, year)
return date1
정적 방법 및 호출
(1) @staticmethod 수식 방법을 사용하면 클래스와 대상과 관계가 없는 일부 기능에 매개 변수를 전송할 필요가 없습니다 (2).가능한 한 정태적인 방법을 적게 쓰다.#
@staticmethod
def is_date_valid(date_as_string):
day, month, year = map(int, date_as_string.split('-'))
return day <= 31 and month <= 12 and year <= 3999
단일 클래스 (1) new (cls) 는 슈퍼 클래스object 클래스에 내장된 방법입니다.매개 변수cls는 클래스 대상(2) 사용자가 만든 대상이고 만든 대상의 인용을 되돌려줍니다.# id(cls)
class DataBaseObj(object):
def __init__(self): #
print("-------init -------")
def __new__(cls): #
print("cls_id:" id(cls))
return object.__new__(cls) #
(2) 전체 프로그램 시스템에서 하나의 실례 대상만 있다.개념은 디자인 모델 중의singleton 모델과 같다.class SingleInstance:
__instance = None
def __init__(self):
print("-----init-----")
def __new__(cls):
if cls.__instance == None:
cls.__instance = object.__new__(cls)
return cls.__instance
s1 = SingleInstance()
print(id(s1))
s2 = SingleInstance()
print(id(s2))
제2부분: 이상 처리
(1) 예외 발견try:
except ExceptionType as err:
(2) 여러 예외 발견try:
except (ExceptionType1, ExceptionType2, ...) as err:
(3) 발생할 수 있는 모든 이상 포획try:
except Exception as err:
(4)finally try:
except Exception as err:
finally:
( , )
(4) 이상 처리의 의미:
클래스 속성(1) 클래스 속성은 실례의 속성과 구별되고 클래스 속성은 클래스 대상에 속하며 실례 대상에 의해 공유된다(2) 속성 찾기 규칙: 먼저 실례 대상의 실례 속성;하위 클래스 객체의 클래스(?)속성(3) 실례 대상을 통해 클래스 속성의 값을 수정할 수 없다.수정된 속성이 인스턴스에 없는 경우 인스턴스 속성을 동적으로 추가합니다.
class Person:
sum_num = 0
def __init__(self):
Person.sum_num += 1 # , , 1
# p1
p1 = Person("zhangsan")
print(p1.sum_num, Person.sum_num)
# , ,
p1.sum_num = 100
print(p1.sum_num, Person.sum_num)
클래스 방법 및 호출
(1) @classmethod로 수식하는 방법을 사용하고 첫 번째 파라미터는cls(2)클래스 방법으로 클래스 속성을 조작한다.실례 방법 조작 실례 대상 속성 (3) 호출 방식: 클래스 이름.클래스 방법();인스턴스 객체.클래스 방법()#이 방법으로는 클래스 방법을 호출하는 것을 추천하지 않습니다.
class Date(object):
def __init__(self, day=0, month=0, year=0):
self.day = day
self.month = month
self.year = year
#
@classmethod
def from_string(cls, date_as_string):
day, month, year = map(int, date_as_string.split('-'))
date1 = cls(day, month, year)
return date1
정적 방법 및 호출
(1) @staticmethod 수식 방법을 사용하면 클래스와 대상과 관계가 없는 일부 기능에 매개 변수를 전송할 필요가 없습니다 (2).가능한 한 정태적인 방법을 적게 쓰다.
#
@staticmethod
def is_date_valid(date_as_string):
day, month, year = map(int, date_as_string.split('-'))
return day <= 31 and month <= 12 and year <= 3999
단일 클래스 (1) new (cls) 는 슈퍼 클래스object 클래스에 내장된 방법입니다.매개 변수cls는 클래스 대상(2) 사용자가 만든 대상이고 만든 대상의 인용을 되돌려줍니다.
# id(cls)
class DataBaseObj(object):
def __init__(self): #
print("-------init -------")
def __new__(cls): #
print("cls_id:" id(cls))
return object.__new__(cls) #
(2) 전체 프로그램 시스템에서 하나의 실례 대상만 있다.개념은 디자인 모델 중의singleton 모델과 같다.
class SingleInstance:
__instance = None
def __init__(self):
print("-----init-----")
def __new__(cls):
if cls.__instance == None:
cls.__instance = object.__new__(cls)
return cls.__instance
s1 = SingleInstance()
print(id(s1))
s2 = SingleInstance()
print(id(s2))
제2부분: 이상 처리
(1) 예외 발견try:
except ExceptionType as err:
(2) 여러 예외 발견try:
except (ExceptionType1, ExceptionType2, ...) as err:
(3) 발생할 수 있는 모든 이상 포획try:
except Exception as err:
(4)finally try:
except Exception as err:
finally:
( , )
(4) 이상 처리의 의미:
try:
except ExceptionType as err:
try:
except (ExceptionType1, ExceptionType2, ...) as err:
try:
except Exception as err:
try:
except Exception as err:
finally:
( , )
섹션 3: 패키지 및 모듈
Python 프로젝트 구조: (1) 1개 프로젝트: n 개 패키지 (2) 1개 패키지: n 개 모듈 (3) 모듈의 이름:.py 확장자 이름의 파일을 모듈로 도입하는 방법: (1) 모듈 가져오기: import modelname 또는 import modulename.model_name(2) 다중 모듈 가져오기: import modelname1, model_name2, ...(3) 모듈에서 함수 가져오기:from modelname import fun1, fun2import model_name Vs from model_name import fun (1) 전자는 모듈을 가져오는 것입니다. 모듈의 내용을 인용하려면 (class,method,variables...)전체 이름, 즉 [module name]을 사용해야 합니다.[attr_name].(2) 후자는 특정한 대상을 가져오는 것이다(class, 기타 대상...).그런 다음 [module name], 즉 [attr name]를 추가하지 않고도 이러한 객체를 직접 사용할 수 있습니다.특별 사용법: (1) 가방 안의 모듈을 다른 가방에 가져오기만 하면 init.py 파일에 all = [model name] (2) 대량 가져오기:from package import*;(1) (2) 구속 작용을 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
#Intent의 암시적 시작 및 명시적 시작
풋내기로서 저는 학습 과정을 기록해야 돼요.
명시적 Intent
새 Intent 객체 인스턴스 Intent
package com.example.administrator.activitylaunch;
import and...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
#Intent의 암시적 시작 및 명시적 시작풋내기로서 저는 학습 과정을 기록해야 돼요. 명시적 Intent 새 Intent 객체 인스턴스 Intent package com.example.administrator.activitylaunch; import and...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.