Python (ongoing)
0. PYTHON : https://newsight.tistory.com/76
1. arg parse - Parser for command-line options, arguments and sub-commands
- argparse 모듈 : 프로그램이 필요한 인자 정의 -> argparse가 sys.argv 파싱할 방법 파악
- 인자 설정
import argparse
parser=argparse.ArgumentParser() //parser 자체가 객체가 됨
parser.add_argument('example', '-e') //처리할 인자 추가
@cmd --> python example.py example AAA
//AAA를 받아와 처리
-설정처리 결과를 저장할 변수 선언: (기본적인 Positional 인자)
args = parser.parser_args()
print(args.ex)
@cmd -> python example.py -e 10
--> 10 출력!
-Optional 인자
-
지정:
parser.add_argument('--example', '-e') //처리할 인자 추가
@cmd -->python example.py example AAA
//AAA를 받아와 처리 -
help
parser.add_argument('--ex', help = "argument explanation)
//help: 인자 사용 도움말 지정
args 변수 선언 후 @cmd->python example.py --help
// 설정한 인자에 대한 설명 출력 (위 예제의 경우 "argument explanation"이 나오겠쥬?)
parser.add_argument(~어쩌고~, help="~어쩌고~", required=True)
//그냥 python example.py 처럼 인자 없이 실행파일만 입력할 경우 도움말이 자동으로 출력 -
type
: 타입 지정을 안할 경우 오류가 발생할 수 있기 때문에!
parser.add_argument("square", help="display a square of a given number",
type=int)
arg s = parser.parse_args()
print(args.square**2)
@cmd 인자를 4로 입력 -> 16 출력, four 입력 -> "example.py: error: argument square: invalid int value: 'four'"
- 플래그? (action="store_true")
if)
parser.add_argumnet("--verbosity", help="increase output verbosity")
args=parser.parse_args()
if args.verbosity: //verbosity 지정시 문자열 표시, 미지정시 do nothing
print("verbosity turned on") //여기에서는 임의의 정숫값을 허용
*값을 요구하지 않고, 플래그로 만들기*
`parser.add_argument("--verbose", help="increase output verbosity",
action="store_true")`
: 새로운 키워드 `action`을 지정, `"store_true"`값을 지정
-> 옵션이 지정되면, args.verbose에 값 true를 대입하라는 뜻, 미지정=`False`
- action의 종류 지정
: 인자 정의할 때 action 지정
- store: 디폴트로 지정하는 값
+store_true, store_false,
+store_const (EX:parser.add_argument('-a', action='store_const', const=10)
// 이 때 const는 반드시 지정을 해줘야 함)
- append : 값을 여러 개 저장할 때 (인자 여
(파서_doc - https://docs.python.org/ko/3/library/argparse.html
or 자습서 - https://docs.python.org/ko/3/howto/argparse.html#id1
or 윹튜바 - https://www.youtube.com/watch?v=fvtk1CwMLh4)
2. Comprehension - iterable한 오브젝트를 생성하기 위한 방법 중 하나
(https://mingrammer.com/introduce-comprehension-of-python/)
3. lambda, map, filter, reduce, dic
- lambda
:익명함수 - 메모리 save, 가독성 up!!
(non익명함수 - 객체 생성 후 재사용 위하 함수 이름(메모리) 할당
- 한 번 사용 후 힙(heap) 메모리 영역에서 증발
sum = lambda a, b: a+b
>>>sum(3,4)
>>>
- map
:입력받은 자료형의 각 요소가 함수에 의해 수행된 결과를 묶어 map iterator 객체로 반환(내장 함수)
map(f,interable 자료형)
//f는 함수
>>> l=[1,2,3]
result = list(map(lambda i : i**2, l) //func(i) : i=i**2 -> list(map(func(),l)
>>> result=[1,4,9]
- c.f : iterable vs. iterator? (https://wikidocs.net/16068)
-iterable 객체: 반복 가능한 객체 (list, dict, set, str, bytes, tuple, range)
-iterator 객체: 값을 차례대로 꺼낼 수 있는 객체 (iter()
함수로 객체 생성)a=[1,2,3] a_iter=iter(a) ```
(https://wayhome25.github.io/cs/2017/04/03/cs-03/)
4. 네임스페이스
(https://hcnoh.github.io/2019-01-30-python-namespace)
c.f : 리눅스 namespace? (https://lascrea.tistory.com/163)
-> 프로세스 관리
Author And Source
이 문제에 관하여(Python (ongoing)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kim_sunnnny/Python-for-blob-storage저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)