class 심화
__init__() : 클래스의 초기 상태를 정의할 수 있는 메서드
class에 __init__ 메서드를 사용하면 클래스 처음 작동 혹은 인스턴스 생성시 해당 메서드가 실행됨
메서드의 self란?
각 메서드의 처음 입력값으로서 인스턴스를 받아들인다는 의미
문법적으로는 사용하지 않아도 되지만, 사용하면 가독성이 좋다
인자가 입력되지 않아도 코드를 실행시키고 싶다면 name="기본값"
상속이란?
클래스를 생성할 때 다른 클래스에서 선언된 변수, 메서드 등의 기능들을 가져와 사용할 수 있도록 해주는 기능
- 상속해주는 클래스 : 부모(parents) or 슈퍼(super) 클래스
- 상속받는 클래스 : 자식(child) or 서브(sub) 클래스
오버라이딩(overriding):
자식클래스에서 부모클래스에 존재하는 메서드와 같은 이름으로 생성하는 것
정규표현식(regex)
regular expression, 문자열이 특정 패턴과 일치하는지 판단하는 형식 언어
코드를 간소화시킬 수 있다
👇 import re
직접 짜는 것은 어렵기 때문에 이미 만들어져 검증된 정규표현식을 가져다 사용하는 것이 권장
(이메일 검증, 패스워드 안전성 검증, 핸드폰번호 검증 등)
정규표현식 앞에 r : 특정 문자들을 특수 문자로 인식하는 것을 방지해줌
정규표현식의 문법 설정과 예제가 있는 사이트:
glob
from pprint import pprint
import glob
출력을 예쁘게 하기 위한 pprint
glob 라이브러리를 사용하기 위해 import glob
path = glob.glob("./venv/*")
pprint(path)
#['./venv\\Include', './venv\\Lib', './venv\\pyvenv.cfg', './venv\\Scripts']
path = glob.glob("./venv/**", recursive=True)
pprint(path)
#['./venv\\',
'./venv\\Include',
'./venv\\Lib',
'./venv\\Lib\\site-packages',
...
]
path = glob.glob("./venv/**/*.py", recursive=True)
pprint(path)
#['./venv\\Lib\\site-packages\\autopep8.py',
'./venv\\Lib\\site-packages\\pycodestyle.py',
'./venv\\Lib\\site-packages\\pip\\__init__.py',
...
]
./venv/* : 현재 경로의 venv 폴더 내의 모든 폴더 혹은 파일을 탐색
./venv/**, recursive=True : 하위 모든 파일을 재귀적으로 탐색
./venv/**/*.py, recursive=True : 하위 모든 폴더를 재귀적으로 탐색하며 .py 확장자 파일을 탐색
open
f = open("file.txt", "w", encoding="utf-8") #열기
f.write("파이썬 파일 쓰기 테스트!\n") #쓰기
f.close() #닫기
"file.txt" : 파이썬에서 사용할 파일을 지정함
"w" : 열기 모드 - 쓰기. 파일이 없다면 새로 생성함 ("write", "read", "append")
(https://docs.python.org/ko/3/library/functions.html?highlight=open#open)
encoding : 파일의 encoding 형식을 지정함. 지정하지 않거나 잘못 지정할 경우 글자가 깨질 수 있음
with open
with 문법을 빠져나가면 파일이 자동으로 close 됨
파일을 열고 많이 쓰거나 읽어야 하면 open을 변수에 지정해주는 것이 좋음
with open("file.txt", "a", encoding="utf-8") as w:
w.write("파이썬 내용 추가 테스트!")
with open("file.txt", "r", encoding="utf-8") as r:
print(r.readlines())
with open("file.txt", "r", encoding="utf-8") as r:
while True:
line = r.readline()
if not line: #텍스트를 끝까지 읽었다면 반복문 중지
break
line = line.strip()
print(line)
.write() : 내용 추가
.readlines() : list 자료형으로 한번에 읽어옴
.readline() : 한줄씩 읽어옴
.strip() : 줄바꿈 제거
'Python > 수업' 카테고리의 다른 글
프로세스와 스레드 (2) | 2023.04.16 |
---|---|
타입별 메서드의 종류 (0) | 2023.04.16 |
파이썬 문법 심화 1주차 3_Sparta Coding Club (0) | 2023.03.23 |
파이썬 문법 심화 1주차 1_Sparta Coding Club (0) | 2023.03.21 |
파이썬 문법 기초 1주차_Sparta Coding Club (1) | 2023.03.20 |