55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
GIL 관련 질문
GIL 관련 질문이 있습니다. 1) 먼저 만약 GIL 을 써서 multi-thread 진행시, 다른 thread 에서 같은 변수에 접근을 못하게 막는다면, cpu 연산만 필요한 코드의 경우에는 전혀 빨라지지 않고 오히려 느려지는거 같은데, 맞을까요? 2) 그리고 뒤쪽에 수업중에 GIL 에도 불구하고, 파이썬에서 multi-thread 쓰는 경우는 system call 작업이 진행되는 I/O bound 일 때 multi-thread 가 효과를 발휘한다고 말씀주신거 같은데(python2,4 모두 수강중입니다), 왜 그럴까요? 어차피 single thread 에서 async non-block 으로 하면 system call 일들을 안기다리고 다른 일이 진행되고, system call 된 다운로드등의 일처리가 끝나면 결과를 받아서 처리하는게 마찬가지 아닌가 해서 질문드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
thread 와 coroutine
thread 와 coroutine 에 질문이 있습니다. 처음에 아래 그림처럼 thread 는 병렬성이 있고, coroutine 은 동시성이 있다고 이해했었습니다. 만약 그렇다면, 멀티 thread 는 한번에 여러 stack 을 올려놔야 하니, 오버헤드가 발생하는 문제가 생기고, coroutine 은 동시성을 가지지만, task 를 바꿀때 code,data,heap,stack 을 다 바꿔야 하니 context switching 문제가 발생해야 한다고 이해했는데, 제가 어느 부분을 잘못 이해하고 있는 것인지요? 1) thread 설명해주실때 code 의 7번째 줄에서 thread 가 시분할 비동기라고 하셨는데, 이부분이 concurrency 로 코루틴 특징 아닌지... 2) thread 부분 설명해주실때 코드 14줄에서 context switching 비용 발생 문제를 지적해 주셨는지 이부분도 코루틴의 문제가 아닌지.. 헷갈려서 질문드립니다. 추가로 3) 싱글스레드 = 코루틴 이라고 단순히 생각해도 되는지 알려주시면 감사하겠습니다. (코드 6번째 줄)
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
인스턴스 생성
이렇게 <= 와 >=를 만들고 테스트를 해보기 위해 __ke__ 라는걸 임의로 만들어 보았는데, 왜 print(s1 > s2) 는 되지 않나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Fruit 클래스 생성과 관련하여
- Fruit 클래스에서 add 인스턴스를 직접만들어 주셨는데, def __add__(self, x): return self._price + x_price 로 되었는데 print(s1 + s2) 가 __add__ 로 매칭된다는건 어떻게 알 수있는건가요 ?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
오류 질문드립니다.
with ThreadPoolExecutor() as excutor: 에서는 잘 실행되는데 with ProcessPoolExecutor() as excutor: 에서 BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending. 오류가 나오는데 구글링 해도 잘 모르겠네요
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
TypeError 발생
TypeError 가 발생하는 이유는 뭘까요?ㅠㅠ
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
클로저 free variable 질문
안녕하세요!! 강의에서 free variable 사용하실 때, 하나는 series =[ ] 다른 하나는 cnt = 0 total =0 를 사용하셨는데요, 둘이 무슨 차이가 있길래 series는 global 처리를 안해도 작동을 잘 하고 cnt, total은 global처리를 해야지만 작동을 하는 건가요? ( def closure_ex1(): # Free variable series = [] # 클로저 영역 def averager(v): # series = [] # 주석 해제 후 확인 series.append(v) print('inner >>> {} / {}'.format(series, len(series))) return sum(series) / len(series) return averager # 잘못된 클로저 사용 def closure_ex2(): # Free variable cnt = 0 total = 0 def averager(v): cnt += 1 # cnt = cnt + 1 total += v return total / cnt return averager avg_closure2 = closure_ex2() 전체 코드 입니다.)
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
__add__ 함수 내의 + 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. def __add__(self, other): return Vector(self._x + other._x, self._y + other._y) 부분에서 + 를 하면 기본 __add__ built-in 함수가 실행되나요?저는 직접 만든 __add__ 함수가 재귀적으로 호출되지 않을까 생각이 드네요..
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
python built-in 함수 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 먼저 강의 잘 듣고 있습니다 감사합니다! 질문 : __bool__() <-> bool()두개 다 이름은 다르지만 같은 기능을 가진 built-in 함수인걸까요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Attribute Error
AttributeError Traceback (most recent call last) <ipython-input-2-060dc4245c24> in <module>() ----> 1 print(car1) <ipython-input-1-cac9745f3ab9> in __str__(self) 57 58 def __str__(self): # 파이썬 내부에 이미 str인스턴스가 있음 (지원해줌) ---> 59 return 'str : {} - {}'.format(self._company. self.details) 60 61 car1 = car('Ferrari', {'color' : 'White', 'horsepower' : 400, 'price' : 8000}) AttributeError: 'str' object has no attribute 'self'강의를 들으면서 코드 작성을 똑같이 했는데 Attribute Error가 뜨네요... 왜 str는 self를 받지 못한다고 나오는건지 모르겠습니다. 찾아보니 처음에 따로 데이터 형식을 지정해줘야 한다는 글도 보이는데 해봤는데 안되더라구요
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
클로저 부분 질문입니다.
안녕하세요? 현재 파이썬 Level2 강의 중 파이썬 일급함수챕터 중 클로저 부분을 수강중입니다. 좀 찾아보면서 헷갈리는 개념이 있어서 질문드립니다. 1. 선생님 강의 + 좀 더 찾아보니 파이썬에는 global / nonlocal / local 영역이 있더군요. 전역변수의 값은 일반적으로 메모리에 보존되는 반면 나머지 nonlocal이나 local 변수들은 함수가 종료되면 변수가 삭제되는게 일반적인 법칙입니다. 하지만 클로저는 그러한 일반적 법칙의 한계를 넘어서 함수가 종료되어도 nonlocal / local 값들을 계속해서 기억하고 있다 고 스스로 정리했는데, 혹시 이게 정확하게 맞는지 알고싶습니다. 2. 선생님의 클로저와 강의 중 클래스를 사용하여 클로저와 비슷하게 구현하신 내용이 있습니다 요부분 인데요, 이 클래스를 활용해서 인스턴스를 생성하고 계속해서 호출을 했을 때 값이 소멸하지 않고 유지되더군요. 그 이유가 궁금합니다. self._series도 전역/지역변수를 공부하고나서 보니까 지역변수에 해당하는 것 같은데 지워지지 않는게 이상하게 느껴져서요. 아니면 혹시 클래스에 의해 만들어진 객체의 모든 값들(self._series 같은 것들도)은 객체가 유지되는 한 함께 보존되는 것인가요? 그래서 마치 클로저 같은 역할을 하는 것인지 궁금합니다.(쓰다보니 그런것같기도하네요 ㅋㅋㅋ..) 3. 마지막으로 nonlocal에 관해서입니다. 1) 2) 1)에는 자유변수로 리스트를 선언했고, 2)에서는 자유변수로 그냥 변수(total같은 것들)를 선언했는데요 2)의 경우에 nonlocal을 붙여주더라구요 이거랑 비슷한 질문을 하신분들이 계셔서 그 답변들을 좀 찾아보면서 좀 정리를 했는데요, 제가 이해한 부분이 맞는지 확인을 받을 수 있을까요? 생소한 개념들이 막튀어 나오다보니까 혼자 정리를 하고서도 맞는지를 모르겠습니다 ㅠㅠ A : - 파이썬은 일반적으로 local영역을 넘어서는 다른 영역의 변수에 대해서는 읽거나 참조를 할 뿐, 수정이나 새로이 할당을 하는 것이 제한한다. 더 자세히 말하면, 제한하기 위하여 별다른 선언(nonlocal, global)등이 없으면 무조건 local영역내의 변수에 관한것이라고 전제한다. - 리스트나 dict의 경우 mutable하며 요소를 추가해주거나(특히 append를 활용하여) 할때 메모리 주소가 바뀌지 않음. 즉 읽거나 참조하는 것이므로 이러한 과정은 허용 -하지만 일반적인 변수는 immutbale하므로 값을 변환해주었을 경우 ID값이 교체되며 완전히 새로운 값이 되며 이는 허용된 권한을 넘는 것 -이에따라 파이썬은 새로이 수정되는 변수가 무조건 local영역내의 변수라고 전제함. -파이썬의 이러한 전제를 제거(?)하기위해 nonlocal을 선언해줘서, nonlocal영역에 위치한 변수를 내부 변수(여기선 averager)에서 사용할 수 있게 함 다적고 보니.. 질문이 너무 많네요 좋은 강의에 감사드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
read 함수에 대한 질문입니다
강의에서 작성하신 코드에서 async def fetch(url,executor): # 쓰레드명 출력 print('Thread Name : ', threading.current_thread().getName(), 'Start', url) # 실행 res = await loop.run_in_executor(executor, urlopen, url) print('Thread Name : ', threading.current_thread().getName(), 'Done', url) # 결과 반환 return res.read()[0:5] 마지막 줄에서 쓰인 read() 함수의 사용이 궁금해져 res의 타입을 출력해 봤습니다 출력 결과 <class 'http.client.HTTPResponse'> 가 나왔는데요 여기서 사용된 read 함수에 대한 설명을 파이썬 공식 문서에서 찾을 수 있었습니다 HTTPResponse.read([amt]) Reads and returns the response body, or up to the next amt bytes. read() 뒤의 [0:5] 부분을 보면 슬라이싱을 이용한 것으로 보이는데, read() 안에 인자를 넣어서 출력되는 부분의 양을 조절하지 않고 슬라이싱을 따로 한 이유가 있는지 궁금합니다 그리고 슬라이싱은 리스트나 튜플 문자열 등에서만 사용 가능한 것으로 알고 있는데요, 위의 경우가 슬라이싱이 맞다면, 슬라이싱을 활용할 수 있는 경우가 더 있는 것인지 알고 싶습니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
hash와 id의 차이는 무엇인가요??
제목 그대로 hash와 id의 차이는 무엇인가요??
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
안녕하세요! 파이썬 시퀀스 강의중 리스트 id값에 대해 질문입니다.
m = [15, 20, 25] m = m *2 .....(1) m *= 2 .....(2) 에서 어떤 차이가 있길래 (1)번은 id값이 변하고 (2)는 변하지 않나요?? 어떤 식으로 이해하면 될까요???
- 해결됨우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
안녕하세요! 매직 method 질문있습니다.
예를들어 __add__ 같은 경우 1) 이 method를 실행시켜주는 기호 + 는 프로그래머가 설정할 필요 없이 파이썬 내부에서 알아서 래핑(?)이 되는건가요? (각 기호만 입력하고 실행하면 그 기호와 짝이 맞는, 클래스 내 정의된 매직method가 실행되서매직 매서드라고 하는건가요..?! ) 2) magic method 목록에 없는 새로운 magic method(마치 함수를 새로 짜듯이)를 만들 수는 없는건가요? 3) 그렇다면 각각 고유한 magic method들과 짝이 맞는, 구현시키는 기호( +, -, *...) 는 스스로 숙지하고 있어야 하는건가요? 4)추가로 클래스 정의할 때, class Car(object), class Car() 이렇게 괄호안에 object를 쓰는 경우와 쓰지 않는 경우가 있는데 둘의 차이점은 무엇인가요?
- 해결됨우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
안녕하세요!!! 명칭에 대한 간단한 질문입니다.
def __init__(self, ~):def detail_function(self):아래꺼는 인스턴스 메쏘드라고 부르는걸로 알고 있는데위에꺼는 정확한 명칭이 무엇인가요? (인스턴스의 attribute을 담당하는 함수라고알고 있습니다) 똑같이 인스턴스 메쏘드라고 하면 되나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
await asyncio.sleep() 의 정확한 실행 과정이 궁금합니다
await asyncio.sleep() 코드가 어떻게 실행되는지에 대한 설명을 찾을 수가 없어 질문 드립니다 import asyncio async def main(): print('tim') task = asyncio.create_task(foo('text')) await asyncio.sleep(1) print('finished') async def foo(text): print(text) await asyncio.sleep(5) asyncio.run(main()) 위의 코드를 실행한 결과, tim text 그리고 1초 후에 finished가 출력되었습니다. stackoverflow에서 다음과 같은 설명을 찾을 수가 있었습니다. "But when you call await asyncio.sleep(), it will ask the event loop to run something else while your await statement finishes its execution." 그럼 위의 코드에서는 task = asyncio.create_task(foo('text')) 를 통해 태스크를 예약하고 그 후에 await asyncio.sleep(0.1) asyncio.sleep 구문을 만나게 되는데, 왜 async def foo(text): print(text) await asyncio.sleep(5) 속의 asyncio.sleep(5)는 코드의 진행에 어떠한 영향도 주지 못하는지 잘 이해가 가지 않습니다 await과 asyncio.sleep()의 기능과 진행 방향에 대한 설명을 부탁드리고 싶습니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
multi process 에러 질문입니다.
- concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending. 아래 코드를 실행했을 때 위와 같은 에러가 발생합니다. 순차실행시는 정상 작동하고, 리스트를 5개정도 줄였을 때도 작동하였습니다. stackoverflow 등을 찾아봤지만 전혀 답을 찾을 수 없어서 올립니다. 위 오류의 원인과 해결책을 알려주시면 감사하겠습니다. if __name__ == "__main__": worker = min(10, len(process_list)) # 시작 시간 start_tm = time.time() # Futures futures_list = [] with ProcessPoolExecutor(max_workers=worker) as excutor: for process_item in process_list: # future 반환 future = excutor.submit(CODE_EXEC, process_item) futures_list.append(future) print('Scheduled for {} : {}'.format(process_list, future)) # as_completed 결과 출력 for future in as_completed(futures_list): result = future.result() done = future.done() cancelled = future.cancelled # future 결과 확인 print('Future Result : {}, Done : {}'.format(result, done)) print('Future Cancelled : {}'.format(cancelled))
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
vscode에서 interpreter 설정 관련 문의 드립니다.
친절하신 강의와 상세한 설명에 감사드립니다. vscode에서 interpreter 지정에 대한 문의를 드립니다. 로컬 PC 환경에서 vscode를 사용하고, 로컬 PC와 물리적으로 분리되어 네트웍으로 연결된 고사양의 원격서버를 interpreter 로 지정하고 싶을 경우 vscode에서 어떻게 설정 해야하는지 문의 드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
asyncio 오류 문의 드립니다.
p-chapter07-01.py 실행시 아래와 같이 오류가 발생합니다. SSL 관련 인증 오류 인 것 같은데 어떻게 해야할 지 모르겠습니다. 지금까지 잘 되었는데, 마지막 Chapter에서 오류가 발생하네요.. ㅠ.ㅠ + 사용환경 + OS : MacOS 12.0.1 (Monterey) + Python Ver. : 3.10 + Error Message urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:997)> + Error Log (p_study) ChangGeuns-MacBook-Pro-15-inch:Python changgeunoh$ /Users/changgeunoh/Desktop/Python/p_study/bin/python /Users/changgeunoh/Desktop/Python/p_study/p_chapter07_01.py /Users/changgeunoh/Desktop/Python/p_study/p_chapter07_01.py:47: DeprecationWarning: There is no current event loop loop = asyncio.get_event_loop() /Users/changgeunoh/Desktop/Python/p_study/p_chapter07_01.py:23: DeprecationWarning: getName() is deprecated, get the name attribute instead print('Thread Name :', threading.current_thread().getName(), 'Start', url) Thread Name : MainThread Start http://daum.net Thread Name : MainThread Start https://naver.com Thread Name : MainThread Start http://mlbpark.donga.com/ Thread Name : MainThread Start https://tistory.com Thread Name : MainThread Start https://wemakeprice.com/ Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 1348, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py", line 1282, in request self._send_request(method, url, body, headers, encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py", line 1328, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py", line 1277, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py", line 1037, in _send_output self.send(msg) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py", line 975, in send self.connect() File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/http/client.py", line 1454, in connect self.sock = self._context.wrap_socket(self.sock, File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/ssl.py", line 1070, in _create self.do_handshake() File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:997) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/changgeunoh/Desktop/Python/p_study/p_chapter07_01.py", line 49, in <module> loop.run_until_complete(main()) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/base_events.py", line 641, in run_until_complete return future.result() File "/Users/changgeunoh/Desktop/Python/p_study/p_chapter07_01.py", line 40, in main rst = await asyncio.gather(*futures) File "/Users/changgeunoh/Desktop/Python/p_study/p_chapter07_01.py", line 25, in fetch res = await loop.run_in_executor(executor, urlopen, url) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 216, in urlopen return opener.open(url, data, timeout) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 519, in open response = self._open(req, data) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 536, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 496, in _call_chain result = func(*args) File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 1391, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/urllib/request.py", line 1351, in do_open raise URLError(err) urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:997)> (p_study) ChangGeuns-MacBook-Pro-15-inch:Python changgeunoh$