46,200원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
타입힌트 실무에서 자주쓰이나요?
제가 아직 실무코드를 많이 못봐서그런데 장고나 flask는 보통 타입힌트가 없는데, fastapi는 타입힌트를 적극적으로 쓰는 것같더라구요. 장고나 flask에서도 타입힌트 자주 쓰이나요?
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
스태틱메소드와 클래스메소드
그 클래스 메소드와 스태틱메소드의 실사용례는 이러할까요? 약간 스태틱메소드는 상속받아도 변하지 않는 것과 관련된 메소드에 사용하고 클래스메소드는 상속받으면 변할 수 있는것과 관련되 메소드에 사용하는? 이에 대한 이해는 이부분 을 참고했습니다. # Online Python compiler (interpreter) to run Python online. # Write Python 3 code in this online editor and run it. class wooden_furniture: ingredient = "wooden" furniture = "furniture" @staticmethod def get_ingredient(): print("made_by_wooden") return "made_by_wooden" @classmethod def get_furniture(cls): print( f"{cls.furniture}") return "class" class wooden_table(wooden_furniture): def __init__(self): self.furniture = "table" table = wooden_table() furniture = wooden_furniture() table.get_ingredient() table.get_furniture() furniture.get_ingredient() furniture.get_furniture()
- 해결됨타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
인스턴스와 데이터
강의에서 인스턴스를 클래스에서 정의한것을 토대로 실제 메모리상에 할당되는 것으로 실제 프로그램에서 사용되는 데이터이다. ㄹㅏ고 되어있는데,, 여기서 쓰인 데이터의 의미가 무엇인가요? 객체에는 변수도 있고, 메서드도 있는데 음,,, 특정객체의 변수가 데이터인것은 와닿는데 메서드도 데이터인가?라는 측면에서는 잘 안와닿아서요. (동시성 프로그래밍 듣고 좋아서, 바로 여기도 넘어왔습니다..fastapi로 해보는데, 그쪽진영에서는 typing을 적극적으로 쓰는것같아서 배워보려고요.)
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
call method 관련 질문입니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서 왜 이 그림에서 callable(Siri) 는 True인데, callable(Siri(Robot))은 False인가요? 읽어주셔서 감사합니다!
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
class Stack(LinkedList) 관하여 질문 드립니다
안녕하세요. class Stack(LinkedList) 부분 중 이해가 되지 않는 부분이 있어서 질문 드립니다. 글이 좀 길어질 것 같은데 차근차근 읽어 주시면 감사하겠습니다~ stack.push(12) stack.push(5) stack.push(10) 을 차례로 실행한다고 가정 했을때, stack.push(12) 실행 스텝, -> new_node = Node(12) -> self.head 는 모클래스 LinkedList 에서 None 으로 받았음으로, self.heald = Node(12) 로 반환 후 return 하여 함수 파트 종료. 다음으로 stack.push(5) 실행 스텝, -> new_node = Node(5) -> if 문의 self.head 는 None 이 아닌 Node(12) 이므로 if 절은 스킵. 여기서 첫 번째 질문 드립니다. stack.push(5) 라는 것을 실행할때 LinkedList 도 자동실행되서 self.head 가 None 으로 리셋되는게 아닌지요? 어떻게 self.head 가 Node(12) 값을 계속 유지하고 있는지 궁금합니다. -> cur_node = Node(12) 왜냐하면 self.head 는 Node(12) 이므로.. -> cur_node 포인터가 없으므로 while 문 스킵. -> cur_node.pointer = Node(5) 로 할당. 즉, 이제부터 cur_node 는 Node(12, Node(5)) 다음으로 stack.push(10) 실행 스텝, -> new_node = Node(10) -> if 문, 두번 째 질문입니다. 여기서 self.head 는 Node(12, Node(5)), 즉 이전 스탭의 cur_node 가 되어야 맞는 것 같은데, 어떻게 이전 스탭의 cur_node 가 현 스탭의 self.head 로 할당이 된건지 궁금합니다. -> cur_node = self.head 이므로 Node(12,Node(5)) 따라서 while 문 진행. -> cur_node = Node(5)로 할당 -> cur_node.pointer = Node(10)으로 할당. -> cur_node 는 결국 Node(5,Node(10)) 이렇게 됨. 똑같은 질문입니다. 이때의 cur_node = Node(5, None(10)) 이것이 다음번의 self.head 가 되는 이유가 너무 궁금합니다. 글이 좀 복잡한데 결국 한가지 질문 같네요ㅎㅎ 답변 부탁드리겠습니다. 감사합니다~
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
데코레이터 관련 질문입니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. def copyright(func): #이 func 인자에는 여러 함수가 들어갈 수 있을 것임 def new_func(): print("@") func() return new_func def smile(): print("^0^") def angry(): print("ff") def love(): print("love") copyright(smile()) copyright(angry()) copyright(love()) 왜 이 코드를 실행하면, @는 같이 붙어있지 않고, ^0^ ff love만 결과로 나오는 것인가요?
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
안녕하세요 아나콘다 업데이트시 프롬프트 에러관련 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 (base) PS C:\Users\wldls> conda update conda Traceback (most recent call last): File "C:\Users\wldls\anaconda3\Scripts\conda-script.py", line 12, in <module> sys.exit(main()) File "C:\Users\wldls\anaconda3\lib\site-packages\conda\cli\main.py", line 151, in main from ..exceptions import conda_exception_handler File "C:\Users\wldls\anaconda3\lib\site-packages\conda\exceptions.py", line 25, in <module> from .common.io import dashlist, timeout File "C:\Users\wldls\anaconda3\lib\site-packages\conda\common\io.py", line 33, in <module> from .._vendor.tqdm import tqdm File "C:\Users\wldls\anaconda3\lib\site-packages\conda\_vendor\tqdm\__init__.py", line 13, in <module> from .cli import main # TODO: remove in v5.0.0 File "C:\Users\wldls\anaconda3\lib\site-packages\conda\_vendor\tqdm\cli.py", line 9, in <module> from .std import TqdmKeyError, TqdmTypeError, tqdm File "C:\Users\wldls\anaconda3\lib\site-packages\conda\_vendor\tqdm\std.py", line 22, in <module> from .utils import ( File "C:\Users\wldls\anaconda3\lib\site-packages\conda\_vendor\tqdm\utils.py", line 45, in <module> colorama.init(strip=False) AttributeError: module 'colorama' has no attribute 'init' (base) PS C:\Users\wldls> conda update conda 를 입력하였더니 이런 오류 메세지가 나오는데, 혹시 저 colorama 모듈이 init를 가지고 있지 않다는 오류를 어떻게 해결할 수 있는 방법이 있을까요?? 문의는 1:1 문의하기를 이용해주세요.
- 해결됨타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
super() 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 super() 관련해 질문 드립니다. 제가 이해한 바로는 super()를 사용하면 부모 클래스의 메서드를 사용할 수 있는 것 같은데 아래 코드에 보시다싶이 cal_add() 메서드를 super말고 self로도 불러와 사용할 수 있으면 오버라이딩 한 상태가 아닌데도 super를 쓸 이유가 있나요? def cal_flexable(self, a, b): super().say_hi() # Greetings, my masters call me iphone8. self.say_hi() # Greetings, my masters call me iphone8. by apple. return self.cal_mul(a, b) + self.cal_add(a, b) + super().cal_add(a, b)
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
staticmethod의 존재이유
안녕하세요. 강의 잘 보고 있습니다. 다름이 아니라 스태틱메소드는 왜 존재하는지 의문이 생겼습니다. 제가 생각했을 때 staticmethod를 작성하면 장점은 그저 class의 namespace안에 들어오는 정도입니다.class namespace에 들어가게 되면 클래스나 인스턴스를 통해서 method를 실행한다는 명시적인 사실만 있다고 판단됩니다. 무엇때문에 staticmethod가 존재하는걸까요?
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
클래스 메서드는 주로 어떤경우에 사용하게 되는지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 수강중에 궁금한 부분이 있어서 질문 드립니다. classmethod의 경우 주로 어떤 경우에 사용되는지 궁금합니다. 가벼운 예시 한두개만 들어주시면 감사하겠습니다.
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
함수 또한 객체라는 것과 관련
(Code 1) def add1(a, b): return a + bprint(add1(2, 3)) (Code 2) class Cal: def __init__(self): pass def __call__(self, a, b): return (a + b)add1 = Cal()print(add1(2, 3)) (Code 1)을 실행할 때, 파이썬 내부에서는 (Code 2)가 발생하고 있다고 이해해도 될까요?
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
setter 설정 후, 인스턴스 변수에 새로운 값을 set할 때
왜 클래스의 메소드 문법을 따르지 않고, 변수를 선언하는 문법을 따르는 것인가요? 가령, robot1 = Robot('siri', 14) 의 인스턴스에 대해서 14를 24로 바꾸고 싶으면 robot1.age(24)로 해야 할 것 같은데, 왜 이것은 int object is not callable이라는 오류가 발생하고robot1.age = 24와 같이 해야만 정상적으로 새로운 값이 set이 되는데요 이것은 @property라는 데코레이터에 매치되는 함수와, @age.setter라는 데코레이터에 매치되는 함수가 정의된 방식이 서로 다르기 때문인가요? + 추가 질문제가 보기에는 getter와 setter의 사용법이 일관되지가 못한데, 이런 것들이 버전업을 고치며 일관성있게 통일이 되기도 하는가요? + 추가 질문파이참에서 두 데코레이터(property, age.setter)의 내부 코드를 보려고 하니 죄다 pass라고만 나오는데, 실제 내부 코드를 보려면 어디로 가야 할까요?
- 해결됨타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
이런 경우에는 class로 만들어진 객체에 새로운 변수를 외부에서 만들 수 있다고 생각해야 하나요??
질문창에 code sample사용이 익숙치 않아서 사진으로 대체하겠습니다 위와 같이 Robot class를 정의한 뒤, droid 객체를 만들어 보았습니다. 이후 __age가 아닌 age에 접근해서 값을 변경하는 코드를 작성했는데, 작동을 했고, 기존에 있던 __age가 아닌 새로운 변수 age가 만들어진 뒤, 100으로 초기화가 되는듯 한 현상이 일어났습니다. 그리고 color라는 class에서는 정의한 적이 없는 변수에 31을 대입해도 잘 작동을 하는것을 확인하였습니다. class에서 선언한 적이 없는 변수를 할당한다는것이 선뜻 자연스럽게 받아들여지지 않아서 이런식으로 코드를 짜는 경우가 실제로도 있는지, 이런걸 방지하기 위한(외부에서 새로운 변수를 할당?)방법은 무엇이 있는지 궁금해서 질문 남깁니다! 감사합니다.
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
시간측정 질문입니다!
안녕하세요. 마지막 시간 측정 부분에서 질문이 있습니다! use slot이 0.16이고 no slot이 0.13인데 여기서 어떻게 use slot이 메모리 효율이 좋다는 결론이 도출되는 건가요?
- 미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
추상화 실무에서는
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 추상화의 개념은 대충 알겠습니다. 그런데 실무에서는 사용 예는 어떻게 될까요? 로봇으로 하니까 감이 잡히지를 않네요 ㅠ 실무 예시가 아니라서 실제로 사용을 할 필요성도 잘 모르겠구요