55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
generator 생성
강의에서 제네레이터는 comprehending list 형태에서 중괄호를 소괄호로 바꾸면 된다는 설명을 하셨는데 인터넷이나 책을 보니 generator는 yield 함수와 써야한다는 글들이 많았습니다. 강의처럼 생성하는 것과 yield함수를 써서 생성하는 것의 차이가 무엇인가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
hash함수 질문
강의 속 d_frozen은 수정불가함수임에도 hash(d_frozen)이 출력이 불가능했는데 그러면 hash함수는 수정불가능함수라고 기억하면 안될까요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
%r이 무엇인지 질문드립니다.
벡터 클래스에서 인스턴스 함수 __repr__에 return 'Vector(%r, %r)'에서 %r이 무슨 뜻인가요. 검색해봐도 나오지 않아서 질문드려요.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
arg 관련 질문 드립니다.
이번 실습 중 Vector 클래스에서 인자로 받으신 변수 명은 arg 이나 실습 중에 사용하신 변수 명은 args 로 사용하셨던데.. 저렇게 사용하면 pycharm에서는 에러가 나더라구요 저게 맞는 사용법인가요??
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
클래스메소드를 인스턴스로 호출하면 인스턴스의 클래스가 cls에 자동으로 대입이 되는지 궁금합니다.
클래스메소드를 인스턴스로 호출하면 어떻게 되나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
autocomeplete에러
python에러 때문에 새로 설치하고 autocomplete을 받았는데 빨간 창에 에러가 계속 뜹니다. Traceback (most recent call last): File "C:\Users\park00\.atom\packages\autocomplete-python\lib\completion.py", line 8, in <module> 이렇게 뜨는데 혹시 cmd창에 pip jedi 라고 다운받아서 해결해도 되나요?? 문제되는 부분이 있는지 몰라 질문남깁니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
atom 실행 오류
cmd창에서 activate를 하고 (p_study) C:\p_study\Scripts>atom 이렇게 입력을하면 'atom'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 이렇게 오류가 뜨는데 왜그런건가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
인스턴스간 비교 질문
인스턴스간 비교할때, 어느경우 is를 사용하고 어느경우 ==을 사용하는지 알고 싶습니다. 예를들어 아래와 같이 car2와 car3 내부 값이 동일한경우, car2 = Car('Bmw', {'color': 'Black', 'horsepower':'270', 'price':5000}) car3 = Car('Bmw', {'color': 'Black', 'horsepower':'270', 'price':5000}) 아래와 같이 == 이나 is로 비교했을 경우 모두 False가 나옵니다. Q. 인스턴스 끼리 비교할때 is 와 ==의 차이점이 무엇인가요? Q. 실제로 다른 인스턴스끼리 값이 같은 경우 True가 나오게 하는 방법은 없을까요? print(car2 == car3) print(car2 is car3)
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
print(array_g.tolist())
출력한 결과값에 'I'가 없는데 이유가 궁금합니다. 아래 같은 질문이 있었으나 답변이 없어, 질문 남깁니다! 확인 부탁드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
* 스타 대한 질문입니다.
aa1 = divmod(100, 9) aa2 = divmod(*(100, 9)) print(type(aa1)) print(type(aa2)) 타입은 동일하게 tuple로 나오는데 다른점이 뭔가요? 단지 (100,9)를 인자하나로 인식해서 안에 있는 두 숫자를 인식해라~ 라는 기능 뿐인건가요? (*(divmod(100, 9))) 이거는 11 1 숫자 두개가 리턴된다 하셨는데 t1, t2 = (*(divmod(100, 9))) 이렇게는 왜 안될까요..?
- 해결됨우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
UnboundLocal Error: local variable referenced before assignmnet
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. c = 30 # global variable(전역 변수) def func_v3(a): print(a) print(c) c = 40 # local variable(지역 변수) # 위 코드를 실행했을 때, UnboundLocal Error가 발생하지만, c = 30 def func_v3(a): c = 40 # local variable(지역 변수) print(a) print(c) func_v3(10) 10 40 # 말씀하신 대로 이렇게 작성하면 Error가 발생하지 않고, 10과 40으로 출력된다는 건 이해했습니다. # 전역 변수보다 지역 변수를 우선시한다는 것 그런데 c = 40 을 print(c) 아래에 두었을 때와 위에 두었을 때, 이 위치가 파이썬 인터프리터가 바라보는 인식의 차이를 모르겠습니다. 이 내용을 구글링도 하고, [stackoverflow](https://stackoverflow.com/questions/10851906/python-3-unboundlocalerror-local-variable-referenced-before-assignment) 에도 들어가서 확인했지만, 이에 대한 확실한 설명은 없었습니다. 다들 이 문제에 대한 해결책으로 global 을 작성하면 되지만, 이는 나중에 디버깅을 힘들게 만들기 때문에 추천하지 않는다는 내용만 확인했습니다. 이에 대해 알려주시면 감사하겠습니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
global 과 nonlocal의 차이점 질문
closure_ex2을 수업하던 중 global을 사용하면 되지 않나?라는 생각이 들어 global을 사용해봤는데 에러가 발생하는 것을 확인했고 closure_ex3에서 nonlocal을 사용하면 문제가 해결되더군요. global로는 에러가 해결되지 않고 nonlocal로는 에러가 해결되는데 어떤 차이점 때문인걸까요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
bs4오류(visual code)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. visual code로 작성한 부분인데 bs4에러가 뜹니다. 가상환경 삭제하기도 해보고 uninstall도 해봤는데 안되네요 ㅠㅠ 어떤게 문제가 될까요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
내부 class에 대한 질문 입니다.
안녕하세요 강사님. 세가지 질문 있습니다. 1. class를 만들때, class명을 대문자로 쓰잖아요. 예) class Car , class Persion 근데 왜 내장 클래스들 str 은 class 인데 이름이 소문자 인가요? class str 로 되어 있던데 2. s = str() print(s) 위 소스에서 str()에 포커스를 가져다 놓으면 아래 처럼 나옵니다. class str 이라고요. ==나오는 내용== builtins class str(Sequence[str]) str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'. 근데 정작 파이참에서 ctrl+click 하면 정의 부분인 class str의 __init__(self) 로 가지 않고 buitins.py 로 가는 이유는 먼가요? 읽어 주셔서 감사합니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
typename:str 에 대한 문의 입니다.
아래 소스는 namedtuple 을 흉내 낸것입니다. Point2 라고 type 이름(?) 을 정하고, 받기는 PointObject 라고 했습니다. 잘 돌아 갑니다. 여기서 질문 입니다. namedtuple 만들때 넣는 typename을 아무렇게나 넣어도 돌아 가는걸 봐서 별 의미가 없는것 같은데 왜 첫번째 인자로 typename:str을 넣어야 하는건가요? 그냥 api 니까 따르는건가요? 가독성을 높이기 위해 넣는건가요? 답변 부탁 드립니다. 감사합니다. PointObject = namedtuple("Point2", 'name, age')p2222 = PointObject('cho', '47')print(dir(p2222))print(p2222.name)print(p2222.age)
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
_add__() 의 위치가 궁금 합니다.
객체 끼리의 더하기를 보고 있습니다. 아래 소스 처럼 class Fruit(): def __init__(self, name, price): self.name = name self.price = price def __add__(self, other): return self.price + other.pricef1 = Fruit('Orange', 7000)f2 = Fruit('apple', 3000)print(f1+f2)print(dir(f1)) 위 소스 보면 + 를 할면 알아서 __add__() 메소드가 호출 되는데요 print( dir(int)) 해보면 네임스페이스에 __add__가 보이고 해서 제 생각에 __add__() 메소드는 어딘가에 존재 하는 메소드 인데 int 클래스에서도 override 했고, Fruit 이라는 class에서도 override 했고 문법에서 + (더하기)를 하면 내부적으로 _add__()를 호출 하는구나 생각했습나다. __add__() 메소드를 가지고 있는 class는 먼가요 자바처럼 Object 인건가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
클래스 변수와 인스턴스 변수
클래스 변수를 이용한 코드를 혼자서 작성하다가, 조금 궁금한 부분이 있어 질문드립니다. 사람이 가방에 물건을 넣는 동작을 클래스로 구현해보고자 했는데요 class Person: bag = [] def put_bag(self, stuff): self.bag.append(stuff) james = Person() james.put_bag('책') maria = Person() maria.put_bag('열쇠') print(james.bag) print(maria.bag) 다음과 같이 bag 라는 클래스 변수를 선언하고, 코드를 실행해보니 james.bag와 maria.bag를 출력한 결과가 같게 나왔습니다. 각각 다른 인스턴스를 생성하여 bag에 물건을 넣었는데도 결과가 같게 나온 이유를 생각해 보았는데요... james.put_bag('책') 이 코드를 실행하면 def put_bag(self, stuff): self.bag.append(stuff) 이 메소드에서 self에는 james가 할당되므로 결과적으로 james.bag.append('책') 이 실행될 것입니다. 그런데 코드 상에서 james 인스턴스는 bag라는 변수가 네임스페이스에 존재하지 않으므로, 그 대신 Person 클래스의 네임스페이스에서 bag 변수를 찾아 여기에 '책'을 넣었다고 생각을 하였습니다. 혹시 잘못된 부분이 있으면 설명 부탁드립니다. 감사합니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
파이썬 클래스의 소멸자에 관한 질문입니다
안녕하세요, 클래스 소멸자에 관한 더 깊은 내용이 궁금해서 구글링을 해 봤는데요 class Employee: def __init__(self): print('Employee created') def __del__(self): print("Destructor called") def Create_obj(): print('Making Object...') obj = Employee() print('function end...') return obj print('Calling Create_obj() function...') a = Create_obj() print('Program End...') 다음과 같은 코드에서 의문점이 몇 가지 생겼습니다. 우선 위의 코드를 그대로 실행하면 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called 순으로 결과가 출력됩니다. 여기서 제가 궁금한 첫번째는 위의 코드에서 return obj 이 부분은 어떤 의미를 가지고 있는가 입니다. obj라는 인스턴스를 생성한 후, return 한 것으로 보이는데, 정확히 어떤 기능을 하는 코드인지가 궁금합니다. 그리고, 위의 return obj 부분을 지운 후 코드를 실행하면 즉, class Employee: def __init__(self): print('Employee created') def __del__(self): print("Destructor called") def Create_obj(): print('Making Object...') obj = Employee() print('function end...') print('Calling Create_obj() function...') a = Create_obj() print('Program End...') 다음의 코드를 실행하면 출력 결과가 Calling Create_obj() function... Making Object... Employee created function end... Destructor called Program End... 이렇게 나오며 소멸자의 호출 순서가 달라지는 것을 확인할 수 있었습니다. 왜 소멸자의 호출 순서가 달라지는 것인지 그 이유가 궁금합니다.
- 해결됨우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
내용 질문
안녕하세요! level 1을 마치고 level 2를 들을려고 합니다. level 2와 동시에 Django로 웹 개발공부를 해볼려고 합니다. 인프런에서 Django 로 코스를 선택했습니다. 그런데, 그 강좌에서 선수 파이썬 기본지식으로 `함수/클래스/상속/일급함수/장식자` 내용을 알아야 들을 수 있다고 하네요. 함수와 클래스는 Level 1에서 들었다고 하면 일급함수, 장식자는 TOC를 보면 Level2 에서 충분히 확인할 수 있는데, 상속은 어디서 들을 수 있는 건가요??? Level 3으로 가야 하나요????
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Thread 이름 질문
강사님 혹시 thread 명은 왜 다 MainThread 인지 설명 해주실 수 있으실까요? 저는 executor 에 max_workers = 10 을 했으면 여러 쓰레드가 생기고, url 에 접근하는 blocking i/o 가 각 쓰레드에서 일어날 것으로 생각했는데 그게 아니어서 질문드립니다. (각 쓰레드가 모두 asyncio 로 concurrency 를 가지면서 동작할 것으로 예상했지만, 단일 쓰레드에서 asyncio 가 동작하네요)