혼자 공부하는 파이썬 개정판 80강 - 클래스 문법 기본

Поделиться
HTML-код
  • Опубликовано: 14 ноя 2024

Комментарии • 40

  • @ilkimable
    @ilkimable Год назад +2

    파이썬 초보입니다.
    클래스를 이해할려고 많은 강의를 찾아 들어봤지만 클래스가 왜 필요한지 가장 정확하게 가르쳐 주는 것 같습니다.
    다른 분들은 붕어빵틀과 붕어빵이라고만 해서 설계도와 인스턴스라고만 알고 있었는데 어디 소속된 함수인지 변수인지 쉽게 구별하는게 현재 저로서는 가장 유익한 클래스의 장점 같네요. 함수가 많아지다보니 나중에 만든 내가 봐도 무슨 함수인지 헷갈렸는데 이 강의 듣고 클래스만들어 새로 짜니까 함수와 변수가 싹 정리되었습니다.
    초보에게 최고의 강의입니다.

  • @jaekunyoo8509
    @jaekunyoo8509 Год назад

    안녕하세요. 감사히 잘 봤어요.
    오늘 class(등급, 학급) 내에서 변수 지정이 없어도 기본인 'self(자신)' 의 명명이유를 알게 됐어요.
    0:17 클래스 - 함수와 변수 묶음, 객체를 만드는 설계도
    0:54 설계도 작성과정
    1:02 설계도 - 다른 분들이 대학교에서 빵틀로 비유해서 설명한다고 하시던데 같은 비유이지요. 설계도, 빵틀, 제작기계, 공장 등에서 만든 제품, 각종 빵 등이 객체이겠지요.
    2:16 객체명 지정
    3:23 초기화 함수 및 클래스 내 모든 함수의 첫 매개변수는 자신(self)이다. 예제에서 변수를 지정하는 괄호 안에 기본인 자신과 5개 변수의 총 6개의 변수를 지정하고 이후 변수명을 지정할 때 자신과 5개 변수를 결합하여 자신의 5개 변수를 만들어서 숫자가 줄어든 것도 석연치 않고 자신.이름 = 이름 할거면 자신 넣을 것 없이 이름 하면 되는데 왜 자신을 넣었나 이해불가 혼란했는데, 2:16 객체명 지정하시는데 "아 그렇구나!" 탄성이 나왔어요.
    객체명이 자신이에요. 파이선 설계자께서 객체명의 자리를 미리 준비하신거에요. 뭔가 이유가 있어서 '자신'이라는 이름을 지정하셨을 텐데 그 이유를 몰라서 그러려니 하고 이해 안돼도 그렇게 쓰면 결과는 맞았는데, 대학생 때 본인 책이 서점에서 팔리는 것을 보며 학교 다녔다는 분의 설명을 듣는 순간 번쩍 번뜩 떠 올랐어요.
    객체명을 정하는 것은 색상 등 선택사항(변수들)을 정한 주문 제품명으로 비유하고, 실행후 객체 생성은 변수들의 각각 값들이 포함된 제품의 생산 배달로 비유하면, self는 설계도에 미래 제품명이나 발주자의 이름을 넣을 자리라고 비유하면 되겠어요. 어떤 제품이냐, 혹 누구의 제품이냐 이름을 정하는 것이지요. 문자대로 학급의 학생들의 이름을 붙이는 성명란이기도 하네요.
    4:31 설계도명.초기화(제품명, 변수1, 변수2 ... 변수몇) 이 두 함수 호출 방법은 실제 초기화 함수가 아니라 설명을 위한 일반 함수의 이름이 '초기화'여서 작동 가능하고 2:16 객체명 지정시에도 클래스 '학생'에 초기화 함수가 없어 변수 지정도 없으므로 변수 입력없이 작동함. 클래스가 명시되면 변수 지정의 self 자리에 객체명을 입력한다.
    4:58 제품명.초기화(변수1, 변수2 ... 변수몇) 이 두 함수 호출 방법은 실제 초기화 함수가 아니라 설명을 위한 일반 함수의 이름이 '초기화'여서 작동 가능하고 2:16 객체명 지정시에도 클래스 '학생'에 초기화 함수가 없어 변수 지정도 없으므로 변수 입력없이 작동함. 객체명이 클래스를 대체하면 self 없이 변수들만 입력한다.
    6:48 실제 초기화 함수 설정
    7:12 클래스를 def로 설계시 초기화(__init__)함수에서 변수 지정을 예를 들어 (self, pm1, pm2, pm3)로 총 4개여도 사용시는 self와 변수들의 결합은 필요에 따라 3개 모두 할 수도 있고, 1개도 안 할 수 있으나 객체명을 지정하여 self는 대응되었고 변수들 3개 모두를 입력해야 한다.
    제품(객체)명 = 설계도(클래스)명(변수1, 변수2 ... 변수몇)
    2023년 7월 12일 수 23시 태평양시간

  • @code_champagneShot
    @code_champagneShot Год назад +1

    눈이 팽팽도는구먼유
    이해안가는부분은 남겨놨다가 나중에 통쨰로 복습하는게 좋나요 ?
    아니면 그 장에서 이해갈떄까지 반복하고 넘어가는게 좋나여?
    입문자인데 언어부터 막히니까 다음 책들이 무섭네유 ㅋㅋㅋ

    • @윤인성
      @윤인성  Год назад

      우리가 영어 문법을 100% 알고 외국인과 회화하큰 것이 아닌 것처럼 → 언어 기본에서 모르는게 있어도 일단 넘어간 뒤 → 활용을 계속 해보는 굿이 좋습니다!

  • @김하민-y2w
    @김하민-y2w Год назад

    영상을 보고 빠졌던 머리카락이 다시 자랐습니다 감사합니다

  • @tpag20
    @tpag20 Год назад

    정말 훌륭한 강의입니다. 배우는 입장에서 어떤 고민을 하는지까지 고려해서 짚어주셔서 감사합니다.

  • @걸음이느린아이-n5o
    @걸음이느린아이-n5o Год назад

    오늘은 여러번 다시 봐야겠군요. 이해는 되는데 뭔가 '왜 그러지'하는 찝찝함이 남네요.
    클래스가 가지는 의미를 다시금 되짚고 보도록 하겠습니다.
    오늘도 감사합니다.

  • @jaekunyoo8509
    @jaekunyoo8509 Год назад

    안녕하세요. 감사히 잘 봤어요.
    전체 영상 마치고 다시 반복해서 기억지속하려 해요.
    2023년 7월 26일 수 19시 태평양 시간

  • @아아-k7x2d
    @아아-k7x2d 6 месяцев назад +1

    윤인성 작가님 안녕하세요 저는 현재 작가님의 혼공파 책(개정판)으로 파이썬을 공부하고 있는 사람입니다.
    제가 혼공파 책 (8)클래스 단원의 466쪽과 467쪽을 공부하다가 의문이 생겨서 이렇게 댓글로 질문을 남깁니다.
    제가 앞서 언급한 페이지에서의 표현을 보면 클래스를 만드는데 클래스명을 Student로 한 경우에 이 클래스의 객체를 생성하는 놈인 Student()를 이 책에서는 생성자라고 부르더라고요.
    그런데 제가 구글링도 해보고 다른 책도 찾아보니 생성자는 특정 클래스의 객체를 생성하는 함수인 "Student()" 다르게 말하자면 "클래스명()" 이런 놈이 아니라
    클래스 내에 정의되어 있는 __init__() 함수라고 하더라고요.
    용어 사용에 혼동이 생겨서 이렇게 질문 드립니다.
    특정 클래스의 객체를 생성하는 클래스명()(ex. Student()) 이 함수가 생성자인가요? 아니면 클래스 내에 정의되어 있는 __init__() 함수가 생성자인가요? 아니면 둘 다 생성자인가요?
    좀 자세히 설명해주시면 감사하겠습니다.
    PS 혼공파 책으로 파이썬 공부 정말 잘하고 있습니다 ^^

    • @윤인성
      @윤인성  6 месяцев назад +2

      어떤 사람이 "집 안에서"는 "아빠"라고 불리지만, "집 밖에서"는 "윤 팀장"이라고 불릴 수 있는 것처럼
      Student 클래스도 "집 안에서"는 "__init__()"이 생성자이고, "집 밖에서"는 "Student()"가 생성자입니다!
      둘이 다른게 아니라 결국 같은 것입니다!
      PS. 뭐 내부적으로 더 파고 들면
      Student()를 호출하면 __new__()가 호출되며
      __new__()에서 __init__()을 호출해서
      __new__()가 정확한 의미의 생성자라고 할 수 있겠지만
      이 함수는 우리가 직접 만지는 함수가 아니라서 __init__()을 생성자로 보는 편입니다.

    • @아아-k7x2d
      @아아-k7x2d 6 месяцев назад +1

      @@윤인성 답변 정말 감사합니다 작가님!!!

  • @DrowsyCAT
    @DrowsyCAT Год назад

    이번 강의는 좋아요 10개는 찍고 싶은 내용입니다.
    내용을 들으면서 데이터 입력을 리스트에서 클래스로 바꾸는 부분에서 '저걸 왜 복잡하게 저렇게 하지?'라고 중얼거렸는데, 바로 그 부분을 짚으셔서 뜨금했습니다.

  • @JeongWooPark-iz3pb
    @JeongWooPark-iz3pb 2 месяца назад

    실제로 활용하며 연습해야겠네요 ^ㅇ^
    2024.09.15 오전 8시

  • @멍멍-f6k
    @멍멍-f6k Месяц назад

    쌤안녕하세요! 파이썬기본문법도 못끝내고 부트캠프만 두번째네요 수업 프로젝트 자격증 바빠서 못오다 큐ㅠㅠ다시왔:어요.. 코테가 취준에 중요하다고 그래서 혼공파 빨리 일회독하고 코테 준비 들어가려구요 !! 24.09.22

    • @멍멍-f6k
      @멍멍-f6k Месяц назад

      붙캠은 에이아이붙캠입니당ㅋㅋㅋ

    • @윤인성
      @윤인성  Месяц назад

      화이팅입니다!!

    • @멍멍-f6k
      @멍멍-f6k Месяц назад

      @@윤인성 어제완강하고 코테책 보면서 코드업부터 풀고있어요 ㅋㅋㅋ 이제 쌤 못봐서 서운하네요 ㅠㅠ

  • @xoonsxxx
    @xoonsxxx 6 месяцев назад

    안녕하세요 올려주신 영상 보고 혼자 공부하는데 정말 많은 도움이 되었습니다 혹시 c언어는 올리실 계획이 없으실까요 ?? 확인 후 답글 남겨주시면 정말정말 감사하겠습니다

    • @윤인성
      @윤인성  6 месяцев назад +1

      제가 냈던 C 책이 대학교재라서 ;ㅇ; .... 강의를 따로 찍을 수 없습니다!

  • @wooseok_lee
    @wooseok_lee Год назад

    캡슐화가 왜 필요한건지 항상 궁금했는데 이런 맥락이었군요 감사합니다!!

  • @제이-x6m7q
    @제이-x6m7q Год назад

    안녕하세요. 파이썬 공부 중인 뉴비입니다. 언제나 영상 잘 보고 있습니다.
    클래스를 처음 접하면서 개인적으로 햇갈리는 부분들이 있는데 이에 대해 질문하고 싶어 댓글 달았습니다.
    Q1. class 학생리스트: 에서 def __init__(self): 부분에는 self.students = []가 작성되어 있는데, 학생리스트 클래스를 가진 객체를 생성하면 생성되는 객체마다 students라는 빈 리스트가 만들어지는 건가요?
    Q2. class 학생리스트: 에서 def print(self): 부분의 for 반복문에는 student.print()가 작성되어 있는데, student.print()에서 print() 함수는 학생 클래스에 있는 print() 함수를 사용하는 건가요?
    Q3. 질문2와 연계하여, 클래스를 생성할 때 함수를 만들면서, 객체뒤에 . 과 함께 함수명을 작성하는 것으로 함수를 사용하는 것을 자주 보는데, 새롭게 만든 클래스에 대해서 객체.함수명() 형태로 작성시 객체의 클래스를 스스로 판별하여 해당 클래스의 함수를 호출하는지도 궁금합니다.
    Q4. 질문3과 연계하여, 문자열 부분에서 is~() 함수와 관련된 내용을 다룰 때, 함수 앞에 있는 객체의 타입이 문자열일 경우에만 작동되었는데, 혹여 모든 상황에 대해서 '.함수명()' 형태의 함수들은 . 앞에 있는 객체가 어떤 타입/클래스인지 스스로 판별하여 그 타입/클래스에 정의된 함수를 적용하는 건지도 궁금합니다.
    클래스 관련 초반 설명(인스턴스 설명 부)에서 제가 이해할 수 있는게 생겨서 좋았습니다. 아무것도 모르는 상태에서 클래스와 '인스턴스는 붕어빵틀과 붕어빵 관계야' 라는 비유를 들으면 이해조차 시도할 수 없는 문제가 생겼으니 말이죠...
    몇회 반복하지 않은 상태이지만 강의 중에 제가 이해할 수 없는 내용이나 익숙하지 않은 단어가 연달아 나오는 설명을 들을 때마다 제가 해야할 것이 정해지는 느낌입니다.
    정말 많은 도움이 되고 있습니다. 감사합니다.

    • @윤인성
      @윤인성  Год назад

      전부 맞습니다. 실제 동작은 "파이썬 매일 코딩"이라는 책에 좀 자세하게 나오는데
      (1) 함수들은 클래스 이름으로 묶여 좀 다른 곳에 저장됩니다.
      (2) . 연산자를 보면, 일단 "해당 클래스 이름으로 묶인 곳"에 가서 함수를 찾습니다.
      (3) 그리고 함수를 호출합니다.
      .
      그래서 학생목록.print()와 학생.print()는 다른 함수를 호출합니다. 각각의 클래스가 가진 함수를 호출합니다.

    • @제이-x6m7q
      @제이-x6m7q Год назад

      @@윤인성 긴글이였는데 답변 감사드립니다. 궁금한 것에 대한 질문의 답을 이렇게 빨리 받을 수 있는 것도 그렇고... 감사합니다!

  • @koeaaoaa4242
    @koeaaoaa4242 6 месяцев назад

    학생들 = [학생("인성"),87,88,98,95)...]
    부분을 print(학생들) 하면 출력이 안되는데 이 학생들은 [{학생:인성,수학:12}] 이런식의 딕셔너리 형태로 저장되는건지 아니면 전혀 다른 형태로 저장되는건지 궁금합니다.

    • @윤인성
      @윤인성  6 месяцев назад

      입력하신 전체 코드를 한 번 보여주실 수 있을까요!

  • @Trapperoftrapperoftrapper
    @Trapperoftrapperoftrapper Год назад

    명강의 감사드립니다

  • @오세진-w8t
    @오세진-w8t Год назад

    감사합니다

  • @jeongyoonkang959
    @jeongyoonkang959 Год назад

    선생님 9분20초경에 더블클릭으로 vs code에서 텍스트 바꾸는 거는 무슨 단축키인가요? macOS 환경입니다!

    • @윤인성
      @윤인성  Год назад

      더블클릭하면 식별자 전체가 선택됩니다.
      그래서 Ctrl + C / Ctrl + V 하고 있는 것입니다!
      코드가 짧고 + 어떤 부분을 변경하는지 조금 보이게 복붙을 사용한건데,
      조금 더 좋은 방법은 변수/함수 식별자 하나 선택하고
      F2 누르시면 이름을 변경하는 메뉴가 나옵니다.
      여기에서 변경하면 관련된 식별자가 한꺼번에 바뀝니다.

    • @jeongyoonkang959
      @jeongyoonkang959 Год назад

      @@윤인성 오 꿀팁 감사합니다^^

  • @hyeyunkim8475
    @hyeyunkim8475 Год назад

    선생님 class StudentList: 의 끝부분에 있는 students.print()에서 TypeError가 나는데 왜 그럴까요?ㅠ

    • @윤인성
      @윤인성  Год назад

      전체 코드를 올려주실 수 있을까요!

  • @fpv2831
    @fpv2831 Год назад

    코딩을 현재 파이썬을 배우고 있는 상황입니다. 하지만 대학교 과 특성상 여러 코딩을 다루다 보니 여쭙고 싶은 내용이 있어 댓글 남깁니다. 코딩으로 매트랩, 파이썬, c,c++,아두이노 이렇게 배우고자 합니다. 배워야하는 입장이고요 ㅠ 모두 윈도우, mac 관련없이 잘 호환이 될까요?
    추가적으로 3d모델링도 잘 아신다면 이거에 대해서도 여쭙고 싶네요.

    • @윤인성
      @윤인성  Год назад

      정확하게 어떤 호환성을 묻고 계신 것인지
      모르므로 호환성과 관련된 적절한 답을 드릴 수가 없습니다.
      추가적으로 책의 내용과 관계없는 답변은 드리지 않고 있습니다!
      [한 명 한 명 질문을 모두 받으면 끝이 없어서요 @_@ !]

  • @태웅윤-l9j
    @태웅윤-l9j Год назад

    class에는 왜 함수가 끝나고 return을 안붙이나요?

    • @윤인성
      @윤인성  Год назад

      원래 함수로 return을 안 붙여도 됩니다. 필요한 경우만 사용해주시면 됩니다.

  • @kangsh74
    @kangsh74 Год назад

    79강 강의영상이 빠진듯 합니다. 확인 좀 부탁 드립니다.

    • @윤인성
      @윤인성  Год назад

      앗 재생목록에 추가를 안 했군요! 확인 감사드립니다!

    • @kangsh74
      @kangsh74 Год назад

      @@윤인성회신 감사합니다. 올려주신 강의 +교재 열독 중입니다.

  • @날개치는머리-c2i
    @날개치는머리-c2i 5 месяцев назад

    언빌리버블!