Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 항해플러스
- 99클럽
- EnvCommandError
- 항해
- 주니어개발자역량강화
- 파이썬 |
- 코딩테스트
- 개발자사이드프로젝트
- vscode cp949
- 99클럽 #99일지 #코딩테스트 #개발자스터디 #항해 #til
- MomentumParameters
- 파이썬 클래스
- 파이썬 sep
- print sep
- 개발자스터디
- 파이썬
- 항해99
- print("""
- Til
- cp949
- 99일지
- 파이썬 map 함수
- 코딩부트캠프후기
- 10430번
- not a git repository
- 주니어개발자멘토링
- 파이썬 int()
- fatal:not a git repository
- 백준
- Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Archives
- Today
- Total
선발대
[스파르타] 파이썬 프로젝트3: class 연습문제 (기초) 본문
코딩 설명
(1) 직사각형 넓이, 둘레 구하기
직사각형의 가로, 세로만 지정해서 직사각형을 생성하면, 멤버 메소드를 이용해 넓이와 둘레를 구할 수 있는 클래스를 작성하세요. (생성자, 넓이, 둘레 함수 총 3가지가 포함되어야함)
(2) 고양이, 강아지 클래스 만들기
이름과 동물을 지정해서 인스턴스를 생성하는 동물이라는 클래스를 생성하고, 동물을 상속받아 고양이 클래스를 만들어 야옹을 출력하는 함수를 만들고, 동물을 상속받아 강아지 클래스를 만들어 왈왈을 출력하는 함수를 만들어주세요.
내가 작성한 코드, 모범답안
(1) 직사각형 넓이, 둘레 구하기
## 내가 작성한 코드
class box:
def __init__(self, wid, len):
self.wid = wid
self.len = len
def area(self):
area = self.wid * self.len
print(area)
def perimeter(self):
perimeter = (self.wid + self.len) * 2
print(perimeter)
## 모범답안
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def perimeter(self):
return (self.width + self.height) * 2
rec = Rectangle(2, 3)
print(rec.area())
후기
- 생성자 개념은 꼭 중요하다. ex) 가로, 세로가 존재하긴 해. 나중에 인스턴스 생성하면 만들게: 생성자 역할
- 클래스는 그냥 틀이므로 속성 값은 없음. 클래스 만들 때 값을 입력하는 건 잘못된 방식임.
- self는 자기 자신을 가르킴.
- 함수에서 print로 보내지 말고, return을 이용해서 값을 반환하자.
(2) 고양이, 강아지 클래스 만들기
class animal:
def __init__(self, name, sound):
self.name = name
self.sound = sound
def who(self):
print("나는", self.name, self.sound)
class cat(animal):
def __init__(self):
self.name = "고양이!"
self.sound = "야옹!"
class dog(animal):
def __init__(self):
self.name = "강아지!"
self.sound = "멍멍!"
## 모범답안
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def bark(self):
return f'{self.name}은 왈왈'
class Cat(Animal):
def meow(self):
return f'{self.name}은 야옹'
dog1 = Dog('강아지')
print(dog1.bark())
cat1 = Cat('고양이')
print(cat1.meow())
후기
- 상속은 위에 이미 적혀있다면 굳이 생성자를 작성할 필요는 없음.
- 상속은 추가할 부분만 작성하면 된다.
- 강아지, 고양이 둘 다 상속은 받았지만 각자 가지고 있는 함수가 다르다.
- 문제를 초반에 잘못 이해한 것 같다. 그냥 동물의 종류만 받으면 됐다.
- 함수를 return 할 때 f-string 을 이용할 수 있다.
- 클래스 내의 멤버에 값을 넣지 말자. 클래스는 틀이라고 생각.
'스파르타코딩클럽 > 활동 내용' 카테고리의 다른 글
[스파르타] 웹프로젝트1: 카카오톡 프로필 화면 만들기 (0) | 2021.12.23 |
---|---|
[스파르타] 파이썬 프로젝트3: 턴제 RPG 게임 만들기 (심화) (0) | 2021.12.22 |
[스파르타] 파이썬 프로젝트1: 업다운 게임 (0) | 2021.12.20 |
[스파르타] 파이썬 문법 기초 (완강) (0) | 2021.12.13 |
[스파르타] 내일배움 캠프 - AI 웹개발 트랙 (1기) (0) | 2021.11.09 |
Comments