Тёмный

혼자 공부하는 파이썬 46강 - 기본 클래스 선언 

윤인성
Подписаться 32 тыс.
Просмотров 16 тыс.
50% 1

Опубликовано:

 

16 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 75   
@Trapperoftrapperoftrapper
@Trapperoftrapperoftrapper Год назад
앞머리 잘못 잘못 자른게 민망하셔서 이번 강의는 캠이 없군요 ㅋㅋㅋㅋㅋㅋㅋㅋ 강의 감사합니다
@오예이-m6z
@오예이-m6z 3 года назад
혼공파 책 잘 보고 있습니다! 책이 정말 친절하고 유익해요ㅎㅎㅎ 클래스는 도저히 감이 안 잡혀서 강의를 찾게 되었는데요, 강의도 너무 좋네요! 감사해요 인성님 :)
@user-vi3ds4bz8c
@user-vi3ds4bz8c 4 года назад
오.... 클래스 수업 들어오니까, 클라스가 달라지네요. 갑자기 머리에 마비가!ㅋㅋㅋㅋㅋ 반복해서 듣겠습니다. :)
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
장호재 간단하게만 진행하고 넘어가시는 것도 추천드려요...! 프레임워크 쓰기 전의 클래스 공부는 사실 큰 의미가 없다고도 생각해서요 @_@ ...!
@user-pw1te3cc3b
@user-pw1te3cc3b 2 года назад
9:00에서 파이썬 3.10 버전과 파이썬 튜터(3.6버전)에서는 6번줄 소멸 함수가 실행하지 않네요>< 어디서 문제가 생겼는지요? class Student: def __init__(self, 이름, 나이): print("객체가 생성되었습니다.") self.이름 = 이름 self.나이 = 나이 def __del__(self): print("객체가 소멸되었습니다.") def 출력(self): print(self.이름, self.나이) student = Student("윤인성", 3) student.출력()
@user-rh1qt9zn7h
@user-rh1qt9zn7h 2 года назад
소멸자의 호출을 확인하려면 "세션 종료"[파이썬 프로그램의 완전 종료]라는 상황이 연출되어야 합니다 따라서 하나의 완전한 프로그램이 아니라 그냥 코드를 간단하게 입력해서 테스트하기 위한 용도의 위치에서는 소멸자 호출을 확인할 수 없습니다. 예를 들어서 다음과 같은 경우입니다. + 주피터 노트북(코랩 등)는 세션 종료를 하지 않습니다. + 인터랙티브 셸도 세션 종료를 하지 않습니다. + 파이썬 튜터도 세션 종료를 하지 않습니다. + IDLE도 마찬가지로 세션 종료를 하지 않습니다. 강의처럼 명령어를 사용해서 호출하는 경우가 가장 기본적인 세션 종료 상황입니다. 현재 코드를 실행하고 있는 환경을 확인해보세요!
@갈가마구
@갈가마구 2 года назад
클래스의 뼈만 추려서,,, 아주 좋네요. 감사합니다.
@KyujinSim
@KyujinSim 4 года назад
명강의 감사합니다. 2020년에도 대박 기원할게요
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
감사합니다. 새해복많이받으세요!
@aslagl5289
@aslagl5289 2 года назад
class Student: def _init__(self,name,korean,math,english,science): self.name=name self.korean=korean self.math=math self.english=english self.science=science def get_sum(self): return self.name+self.korean+self.math\ +self.english+self.science def get_average(self): return self.get_sum()/4 def to_string(self): return "{}\t{}\t{}".format( self.name,self.get_sum(),self.get_average()) students=[ Student("윤인성",87,97,43,24), Student("구민창",93,21,35,76), Student("연하진",38,19,22,90), Student("나선주",91,72,84,28), Student("윤아린",91,80,98,98), Student("윤명월",64,88,92,92) ] print("이름","총점","평균",sep='\t') for student in students: print(student.to_string()) 여기서 File "c:\Users\sds20\OneDrive\바탕 화면\python\8장\object_5_class.py", line 18, in Student("윤인성",87,97,43,24), TypeError: Student() takes no arguments 이게 어떤의미인지 모르겠습니다
@user-rh1qt9zn7h
@user-rh1qt9zn7h 2 года назад
__init__ 함수 앞에 _가 하나 없어서 발생합니다!
@aslagl5289
@aslagl5289 2 года назад
@@user-rh1qt9zn7h 해결했습니다 감사합니다!!
@aslagl5289
@aslagl5289 2 года назад
처음이라 어렵네요
@user-rh1qt9zn7h
@user-rh1qt9zn7h 2 года назад
그래도 처음이라 어려운 것이니 계속 마주하시면 금방금방 어렵지 않게될거예요! 화이팅입니다!!
@ybhsos8864
@ybhsos8864 5 лет назад
강의 보다가 책까지 구입하였습니다. 언제나 좋은 강의 고맙습니다.
@이채현-w8i
@이채현-w8i 5 лет назад
잘 보고 있습니다! 도움 많이 돼서 친구들에게도 책 홍보하고 다녀요ㅎㅎ
@알거없다-u2g
@알거없다-u2g 3 года назад
자바 공부할 때도 클래스 생성자 메소드 상속 부분부터 쭉 막혀서 접었는데 파이썬도 여기서 절 힘들게하네요...하하하
@user-rh1qt9zn7h
@user-rh1qt9zn7h 3 года назад
눈도장만 찍고 넘어가는 것도 추천드립니다! 프레임워크 사용 전에는 실제 사용 예를 함께 보기 힘들어서 실체가 없는 느낌이고 + 웹 개발이 아닌 이상 파이썬은 클래스를 그렇게까지 활용하지 않습니다!
@박성준-z8j
@박성준-z8j 2 года назад
#클래스를 선언합니다 class Student: def __init__(self, name, korean, math, english, science): self.name=name self.korean=korean self.math=math self.english=english self.science=science def get_sum(self): return self.korean+self.math+\ self.english+self.science def get_average(self): return self.get_sum()/4 def to_string(self): return"{}\t{}\t{}".format(\ self.name,\ self.get_sum(),\ self.get_average()) #학생 리스트를 선언합니다 students=[ Student("윤인성", 87, 98, 88, 95), Student("연하진", 92, 98, 96, 98), Student("구지연", 76, 96, 94, 90), Student("나선주", 98, 92, 96, 92), Student("윤아린", 95, 98, 98, 98), Student("윤명월", 64, 88, 92, 92) ] #학생을 한 명씩 반복합니다 print("이름","총점","평균",sep="\t") for student in students: print(student.to_string()) 379pg 직접 해보는 손코딩입니다 ! 책에서는 student=Student()와 같이 객체인 인스턴스를 선언해야한다고 하는데 위와 같은 코드에는 일련의 과정이 없습니다 하지만 마지막에 student.to_string()을 사용하는 것은 for student in students에서 각각의 student가 students내부에 있는 Student랑 매칭이 되어서 이와 같이 사용 되는 것인가요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 2 года назад
Student(~~)을 하면 인스턴스가 만들어집니다. 리스트를 만들면서 곧바로 만든 것입니다.
@박성준-z8j
@박성준-z8j 2 года назад
@@user-rh1qt9zn7h 감사합니다!
@NoxPark
@NoxPark 2 года назад
윤저자님의 강의 감사드립니다. 열심히 해서 어서 56강까지 하고 싶은 1인입니다. class 학생: def __init__(self,name, korean, math, english, science): self.n = name self.k = korean self.m = math self.e = english self.s = science def 총점(self): return self.k + self.m +\ self.e + self.s def 평균(self): return self.총점() / 4 def 출력(self): print(self.n, self.총점(), self.평균(), sep = "\t") students = [ 학생("홍길동", 10, 20, 30, 40), 학생("김철수", 15, 25, 35, 45), 학생("이영희", 26, 37, 48, 59), 학생("박정수", 31, 42, 53, 64), ] print("이름", "총점", "평균", sep="\t") for student in students: student.출력() 과 class student: def __init__(self,name, korean, math, english, science): self.n = name self.k = korean self.m = math self.e = english self.s = science def 총점(self): return self.k + self.m +\ self.e + self.s def 평균(self): return self.총점() / 4 def 출력(self): print(self.n, self.총점(), self.평균(), sep = "\t") students = [ student("홍길동", 10, 20, 30, 40), student("김철수", 15, 25, 35, 45), student("이영희", 26, 37, 48, 59), student("박정수", 31, 42, 53, 64), ] print("이름", "총점", "평균", sep="\t") for student in students: student.출력() 위에 구문은 클래스 이름 학생과 리스트에서 받은 요소 이름 student가 다른데 아래 구문은 클래스 이름 student과 리스트에서 받은 요소 이름 student가 같습니다. 그런데 결과값은 같게 나옵니다. 여기가 이해가 안되서요. 이렇게 써도 값이 같이 나오는 것이 왜 그런지요? 클래스는 선언될 때 마치 함수 몇개를 내포하고 있는 집합체 같은 느낌입니다. 이게 맞다면 이 느낌을 잡는 것이 객체지향 기계어를 배우는 과정에서 가장 중요하다고 생각이 듭니다. 그래서 self가 의미하는 것은 그 선언된 클래스 자체 같기도 하고 아닌 것 같기도 하고.. 왜 객체지향 언어가 어려운지 참 많이 느낍니다.
@user-rh1qt9zn7h
@user-rh1qt9zn7h 2 года назад
질문이 이해가 잘 안 되는데, 변경하면 어떤 실행 결과가 나올 것이라고 생각하신 것인지 알 수 있을까요? 클래스는 이해하고 뭘 하고 할 것도 없이 반복문 또는 함수보다 훨씬 간단한 개념입니다. 현재 설명해주시는 내용을 보면, 지난 질문도 그렇고 반복문에 대한 이해가 약간 부족하신 것으로 보입니다! 반복문 부분과 클래스 개요 부분을 여러 번 반복해서 보시는 것을 추천드립니다!
@NoxPark
@NoxPark 2 года назад
@@user-rh1qt9zn7h 윤저자님 class 학생: def __init__(self,name, korean, math, english, science): self.n = name self.k = korean self.m = math self.e = english self.s = science def 총점(self): return self.k + self.m +\ self.e + self.s def 평균(self): return self.총점() / 4 def 출력(self): print(self.n, self.총점(), self.평균(), sep = "\t") students = [ 학생("홍길동", 10, 20, 30, 40), 학생("김철수", 15, 25, 35, 45), 학생("이영희", 26, 37, 48, 59), 학생("박정수", 31, 42, 53, 64), ] print("이름", "총점", "평균", sep="\t") for student in students: student.출력() 과 class student: def __init__(self,name, korean, math, english, science): self.n = name self.k = korean self.m = math self.e = english self.s = science def 총점(self): return self.k + self.m +\ self.e + self.s def 평균(self): return self.총점() / 4 def 출력(self): print(self.n, self.총점(), self.평균(), sep = "\t") students = [ student("홍길동", 10, 20, 30, 40), student("김철수", 15, 25, 35, 45), student("이영희", 26, 37, 48, 59), student("박정수", 31, 42, 53, 64), ] print("이름", "총점", "평균", sep="\t") for student in students: student.출력() 첫번째 구문은 선언된 클래스 이름 "학생"과 리스트에서 받은 요소 이름 "student"가 다르고 두번째 구문은 선언된 클래스 이름 "student"과 리스트에서 받은 요소 이름 "student"가 같습니다. 그런데 두 구문다 실행시 결과값은 같게 나옵니다. 질문 - 왜 두 구문의 결과값이 같이 나오는 것인지가 궁금합니다. 두번째 구문에서 선언된 클래스 이름 student가 이미 있는데 리스트 students에서 요소를 받으려고 student를 변수로 썼는데 실행값이 같다는 것이 이해가 안됩니다. 선언된 student 클래스와 반복문에서 리스트요소를 받으려는 변수 student가 어떤식으로든 프로그램실행시에 충돌을 일이키지 않을까 생각이 들어서 드리는 질문입니다.
@user-rh1qt9zn7h
@user-rh1qt9zn7h 2 года назад
@@NoxPark 코드는 위에서 아래로 실행이 됩니다. 처음 클래스 student를 만드셨을 때는 student라는 이름으로 클래스의 객체를 만들 수 있습니다. 이어서 반복문 내부에서 student라는 이름을 만드셨으면, 이때부터 student라는 이름은 클래스가 아니게 되므로 객체를 만들 수 없습니다(클래스를 가리키고 있는 것이 아무 것도 없으므로 + 이후로는 완전히 만들 수 없게 됩니다). 그래서 일반적으로 클래스 이름은 무조건적으로 대문자로 시작하게 만들어서 이름 충돌을 피합니다.
@hjs9693
@hjs9693 3 года назад
파이썬에서 객체의 소멸시점이 궁금했었는데 영상보고 대략이나마 알게 됬습니다. 프로그램의 종료 직전에 메모리를 정리할때군요. 감사합니다.
@user-ft2sv3ip7h
@user-ft2sv3ip7h 4 года назад
교재 374페이지에서의 객체를 처리하는 함수(2)에서 def sum_student(student): return student["korean"] + student["math"] + student["english"] + student["science"] 이런 함수 선언의 매개변수로 student를 사용하는 이유는 마지막 for 문의 for student in students: 이 부분에서 student라는 변수로 받기 때문인가요? 또한 한가지 더 질문이 있습니다. 교재 379쪽의 클래스 내부에 함수(메소드)선언하기 부분에서 def get_average(self): return self.get_sum / 4 여기서 함수는 self.get_sum으로 불러오는데 print(student.call_student()) 여기에서는 왜 student로 불러오며 저 'student'는 어디서 가져오는건가요ㅜㅜ 클래스명에 따른 인스턴스 함수인가요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
그냥 함수의 매개변수일 뿐입니다. 매개변수로 a를 받고, a를 처리하는 형태로 코드를 작성하셔도 전혀 상관 없습니다.
@hanadoll01
@hanadoll01 5 лет назад
얼굴을 못 뵈어서 좀 아쉽지만... 앞머리 빨리 자랐으면 좋겠네요.. 강의 감사합니다.^^
@min-yeongkang3162
@min-yeongkang3162 4 года назад
확실히, 새로운 내용을 배우니 재미가 있으면서도 궁금증이 많이 생깁니다. 망설이다가, 질의응답을 통해서 다른분들도 도움을 더 얻으실 수 있지 않을까하는 생각에 다시 질문 남겨봅니다. 이번 강의에서 Student 라는 클래스를 생성하고, student = Student() 라는 구문을 통해 student 라는 객체를 생성하였다는 것은 잘 이해되었습니다. 그렇다면 지난 강의처럼, students = [ 학생("윤인성",87,98,88,95), 학생("연하진",92,98,96,98), 학생("구지연",76,96,94,90), 학생("나선주",98,92,96,92), 학생("윤아린",95,98,98,98), 학생("윤명월",64,88,92,92) ] 라고 작성할 경우의 객체는 리스트인 students 일까요, 아니면 리스트 내부의 아직 이름이 붙지 않은 각 요소들일까요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
둘 다 객체입니다. 그냥 관점의 차이인데, "객체 지향 프로그래밍에서는 모든 것이 객체이다"라고 생각하시는 것이 편합니다. 학생은 학생 객체이고, 학생 리스트는 학생 리스트 객체입니다. 프로그램 전체도 하나의 객체로 보는 거대한 객체 지향 관점도 있습니다(마치 사람 > 복부내장기관 > 소장 대장 등등처럼 구분되듯이).
@min-yeongkang3162
@min-yeongkang3162 4 года назад
@@user-rh1qt9zn7h 객체라는 것이 생각보다 포괄적인 개념이군요. 답변 감사 드립니다.
@정재훈-k2r
@정재훈-k2r 4 года назад
코랩을 사용해서 클래스의 생성자, 소멸자 사용하는 코드 (7:47) 를 실행하니까 처음에 한번 실행했을 때는 객체가 생성되었습니다. 윤인성 3 으로 출력되고 그 이후로 실행했을 때는 객체가 생성되었습니다. 객체가 소멸되었습니다. 윤인성 3 이런식으로 출력 되는데 왜 이렇게 나오는건가요???
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
프로그래밍 언어 실행기가 한번 실행되어서 꺼질 때까지의 과정을 "한 세션"이라고 표현합니다. 강의와 책에서 python ㅇㅇ.py하고 프로그램을 실행할 때가 바로 세션을 시작하는 것이며, 명령어가 종료될 때 세션이 끝납니다. 세션이 종료될 때에 모든 변수를 메모리에서 제거합니다. 코랩은 세션을 하나 실행시킨 뒤에, 위에서 여러 코드를 실행하는 형태입니다. 따라서 세션 종료 버튼을 따로 누르지 않는한 세션이 종료되지 않으므로, 메모리에서 변수가 제거되지 않습니다. 그래서 한 세션으로 실행했다면 2. 할당 = 1. 생성 3. 출력 ---- 4. 세션 종료[소멸] 하는 과정으로 실행됩니다. 하지만 코랩에서는 처음에는 2. 할당 = 1. 생성 3. 출력 = 세션 실행 중 =[이라 소멸이 안 뜹니다][변수를 다음 칸에서 출력해보면, 내용이 그대로 들어있는 것을 알 수 있습니다]. 두 번째 실행 이후로는 2. 할당 = 1. 생성 = 3. 할당 시점에 기존의 객체가 변수와 연결이 끊기므로 이때 소멸 = 4. 출력 해서 지금 제시해주신 것처럼 실행되는 것입니다. 추가 참고로 원래 이렇게 세션 하나 띄우고 실행하는게 C#으로 구현한 파이썬 구현체 iPython에서 "노트북"이라고 이름을 붙였고, 이후 이 기능이 꽤 쓸만해서(이전에 선언한 변수를 또 들고와서 이것 저것 할 수 있다보니 편리), 이름이 "주피터 노트북"으로 변경되고, 이게 코랩 등에 사용된 것이라서, 이런 실행 형태를 "노트북" 또는 "주피터 노트북"이라고 부르기도 합니다!
@정재훈-k2r
@정재훈-k2r 4 года назад
@@user-rh1qt9zn7h 아 코랩(또는 노트북)에서는 세션 종료가 명령어가 끝나도 자동으로 되지 않아서 그런거라는 거군요.. 또 하나 배워가네요. 감사합니다!!
@aaron-kim00
@aaron-kim00 3 года назад
감사합니다
@LovePawPad
@LovePawPad 4 года назад
잘 보고 있습니다! 좋은 강의 감사합니다!! 궁금한 게 있는데 강의 예시 코드에서 student = Student("윤인성", 3)이라는 형태를 사용하셨는데 Student("윤인성", 3)로 인스턴스를 만들고 그것을 student라는 변수에 넣은 것이라고 생각하면 될까요? 그리고 위의 말이 맞다면 인스턴스를 저장해놓은 변수를 '변수.함수()' 이런 식으로 함수를 활용하고 함수의 실행문은 'self.생성자에 있던 매개변수' 그리고 'self.함수()' 이런 식으로 생성자에게 줬던 매개변수값이나 클래스의 다른 함수들을 사용한다고 생각하면 될까요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
넵 'ㅁ' ...! 맞습니다...!
@LovePawPad
@LovePawPad 4 года назад
@@user-rh1qt9zn7h 알려주셔서 고맙습니다!!
@Ivan-k5o1y
@Ivan-k5o1y 3 года назад
책 내용중 클래스함수에 대해 질문있는데요. 클래스 함수를 선언할때 @classmethod 데코레이터를 붙여 선언한다고 하였는데 그전에 계속 빠짐없이 등장한 def __init__(self, x, y)나 예제로 등장하는def get_sum(self), def get_average(self) 등도 사실 다 함수인데 왜 @classmethod를 안붙이는건가요? 클래스 안에서 선언된 함수다라는 상징적 의미밖에 없어 사실 안붙여도 되기 때문에 그냥 안붙히고 사용한건가요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 3 года назад
__init__은 생성자라는 특수한 함수이고, 다른 함수들은 클래스 함수가 아니라, 인스턴스 함수입니다. Student.get_sum() 형태로 실행하면 오류가 납니다. 클래스 함수로 선언한 녀석들은 Student.get_sum()처럼 클래스 이름 뒤에 바로 사용할 수 있게 됩니다!
@suhyeonlee6136
@suhyeonlee6136 4 года назад
안녕하세요! 질문 답변부탁드립니다 1번 class Character: def attribute(self, name): self.name = name self.ap = 10 self.dp = 5 2번 class Character: def attribute(self, name): self.name = name ap = 10 dp = 5 매개변수로 받지 않는변수도 self를 써야하나요?? 1번과 2번중 어떤게 맞는건가요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
매개 변수와 관계있다기 보다는 사용 범위와 관련이 있습니다. 해당 함수 내부에서만 쓸거라면 2번도 상관 없습니다[ap와 dp의 값은 해당 함수가 끝나면 사라집니다]. 클래스 내의 다른 함수에서 사용할 것이라면 1번처럼 self를 사용해서 객체에 변수를 넣어야 합니다.
@짱구어디갔뇽
@짱구어디갔뇽 4 года назад
@@user-rh1qt9zn7h 아하 감사합니다!
@류상서
@류상서 5 лет назад
안녕하세요^^ 수고하셨습니다. 좋은하루 되세요 감사합니다.^^
@lifeispain2
@lifeispain2 3 года назад
책 끝까지 일반 보고 처음부터 다시 볼 예정입니다. 클래스는 참 어렵네요..
@bbossam_jjudy
@bbossam_jjudy 3 года назад
아.. 그래서 모습이 안보이신거군요....흑흑
@jaeilnam9219
@jaeilnam9219 4 года назад
훌륭한 강의에 감사드립니다.그런데 45강에서는 강의 영상 뒷배경에 강아지도 있었습니다. 혹시 강의 촬영을 댁에서 하시나요. 궁금해서 문의드립니다.
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
넵 그냥 집에서 하고 있습니다 'ㅁ'
@Namo-de7zw
@Namo-de7zw 3 года назад
비공개 동영상은 뭐예요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 3 года назад
앗 현재 재생 목록에 끼어 있나요 @_@ , 편집 실수 등이 있어서[소리가 왼쪽만 나온다던지 등], 다시 올리면서 제거한 영상들입니다!
@AL-1S4936
@AL-1S4936 3 года назад
이름 총점 평균 Traceback (most recent call last): File "/Users/gobeomseo/Documents/파이썬/object_4_class.py", line 37, in print(student.to_string()) AttributeError: 'Student' object has no attribute 'to_string' 에러가 떠요ㅠㅠ 뭐가 문제인지좀 알려주실수 있을까요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 3 года назад
전체 코드를 올려주세요! to_string을 안 만들어서인데 전체 코드를 봐야할 것 같습니다.
@AL-1S4936
@AL-1S4936 3 года назад
@@user-rh1qt9zn7h 고쳐냈어요! def함수가 class로 들여쓰기가 안되서 난 오류였어요! 1시간동안 코드 보면서 고민했어요! 풀리니까 너무 좋네요! 답변 고맙습니다.
@paullee8078
@paullee8078 3 года назад
파이썬에서는 메소드라는 표현을 쓰지 않는다고 강의에서 말씀하셨는데(8:00), 왜 책 379 페이지에는 메소드라고 나와있나요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 3 года назад
해당 부분 이전까지 다루었던 함수와의 구분을 위해서 사용했습니다! 거의 쓰이지는 않는데 가끔 언급은 될 수 있는 용어이므로 간단하게만 기억하면 될것 같습니다!
@ssle2670
@ssle2670 4 года назад
궁금한 게 있는데요, 비주얼 스튜디오 상단 메뉴에 '디버그'는 무엇인가요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
버그를 제거한다(Debug)라는 의미로 버그 해결에 도움을 주는 기능입니다. 고급 기능으로 분류되는 내용[+ 파이썬은 사실 이 기능을 써야할 정도로 대규모의 프로그램을 만들 때 사용하지는 않고]이라 강의에서는 딱 한 번만 살짝 다루었습니다 @_@ ...![어디였는지는 기억이 잘 안나는데 ㅠ_ㅜ]
@ssle2670
@ssle2670 4 года назад
@@user-rh1qt9zn7h 그럼 디버그 시작을 눌렀을 땐 프로그램의 버그를 전체적으로 검사해주는 알약(?)같은 기능을 수행하나요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
@@ssle2670 앗 아닙니다[...] 그런건 안 됩니다. 그냥 지원을 해줄 뿐입니다.
@jaehyuckyeo5618
@jaehyuckyeo5618 4 года назад
똑같은 class 코드를 반복해서 입력해서 익히는 도중에 에러가 났어요 보니까 한글 인코딩 에러인데 SyntaxError: Non-UTF-8 code starting with '\xc0' in file exp4.py on line 2, but no encoding declared; see python.org/dev/peps/pep-0263/e 2, but no encoding declared; see python.org for details 비주얼스튜디오 코드 세팅에서 한글 인코딩이 utf8이 맞는지 아니면 euckr 이 맞는지 알고 싶어요 전에 한글이 깨져서 euckr로 바꾸었거든요
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
파일 읽을 때를 제외하면[운영체제 기본 설정으로 파일을 읽는데, 윈도우는 cp949(euckr확장)이라], 무조건 utf-8입니다. 참고.파일 읽을 때도 일반적으로 encoding 키워드 매개변수를 강제로 지정해서 utf-8로 읽게 됩니다.
@jaehyuckyeo5618
@jaehyuckyeo5618 4 года назад
기본이 utf-8 이란 것이죠 그냥 두면 될거 같은데 어떤때는 한글이 안먹어서 저런 에러가 나서요
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
@@jaehyuckyeo5618 어떤 상황인지 정확하게 모르겠는데, 위에서 언급했듯이 파일 입출력을 제외하면 인코딩 오류가 발생할 일이 거의 없습니다.
@user-uo9op2ok7v
@user-uo9op2ok7v 4 года назад
ㅜㅠ 클래스에서 이틀째 갇혀있네여 ...어렵네여
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
그냥 이렇게 작성하겠다는 약속일 뿐이라 어렵게 느끼실 부분이 별로 없습니다. 클래스가 어렵게 느껴진다면 일반적으로 그 앞의 함수 부분이 조금 약한 것이 원인이라, 진행하기 힘들 정도로 어렵게 느껴진다면 함수 쪽을 다시 살펴보는 것을 추천합니다.
@카이마루
@카이마루 4 года назад
클래스로 선언해서 총점 평균을 구한 380쪽 코드에서 마지막 줄에 print(student.to_string())이라고 되어있는데 여기서 클래스 없이 선언해서 구했던 부분처럼 print(to_string(student))로 하면 왜 오류가 나오나요??
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
그런 이름의 함수가 더 이상 없기 때문입니다 'ㅁ' [def to_string(student)라는 함수가 없으니까요]
@카이마루
@카이마루 4 года назад
@@user-rh1qt9zn7h 그렇지만 클래스 내부에 def to-string(self)를 선언해준거랑 같인거 아닌가요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
추창엽 클래스 내부에 선언한 것이므로 전혀 다릅니다 'ㅁ' , 길거리의 공중전화는 누구나 쓸 수 있지만, 우리 집의 전화는 우리 집 사람들만 쓸 수 있는 것처럼요!
@카이마루
@카이마루 4 года назад
@@user-rh1qt9zn7h to_string(self)로 선언한 클래스 내부함수는 print(student.to_string())으로 출력을하고 __str__(self) 의 함수는 print(str(student))로 출력을 하고 괄호안에 변수가들어가는지 . 으로출력을 하는지 이거는 외워야하나요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 4 года назад
@@카이마루 강의와 책에서도 언급했던 것처럼 __str__
@유지태-l9s
@유지태-l9s 4 года назад
클래스로 할 수 있는걸 함수로도 할 수 있는거 같은데 클래스는 왜 있는건지 잘 모르겠네요 아직도
@유지태-l9s
@유지태-l9s 4 года назад
ㄷㄷ 다음 강의에서 답이 나오네.. 아직 알면 안되는 거였군요
Далее
혼자 공부하는 파이썬 45강 - 클래스 도입
13:38
Как мы играем в игры 😂
00:20
Просмотров 169 тыс.
Каха и жена (недопонимание)
00:37
C언어 기초 구조체 (struct)
14:38
Просмотров 71
혼자 공부하는 파이썬 31강 - 함수 기본
9:27
자바스크립트 기초 1
10:44
Просмотров 6