python-6


문제 6-1

다음의 조건을 만족하는 Point라는 클래스를 작성하세요.

  • Point 클래스는 생성자를 통해 (x, y) 좌표를 입력받는다.
  • setx(x), sety(y) 메소드를 통해서 x와 y 좌표를 따로 입력받을 수도 있다.
  • get() 메소드를 호출하면 튜플로 구성된 (x, y) 좌표를 리턴한다.
  • move(dx, dy) 메소드는 현재 좌표를 dx, dy 만큼 이동시킨다.
  • 모든 메소드는 인스턴스 메소드이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def setx(self, x):
self.x = x

def sety(self, y):
self.y = y

def get(self):
return (self.x, self.y)

def move(self, dx, dy):
self.x = self.x + dx
self.y = self.y + dy

문제 6-2

문제 6-1에서 생성한 Point 클래스에 대한 인스턴스를 생성한 후 네 개의 메소드를 사용하는 코드를 작성하세요.

1
p = Point(1,2)
1
p.get()
(1, 2)
1
2
p.move(2,2)
p.get()
(3, 4)
1
2
p.setx(5)
p.get()
(5, 4)
1
2
p.sety(0)
p.get()
(5, 0)

문제 6-3

아래의 Stock 클래스에 대해 두 개의 인스턴스를 생성했을 때 클래스와 a와 b 인스턴스의 네임 스페이스를 그려보세요.

1
2
3
4
5
6
>>> class Stock:
market = "kospi"


>>> a = Stock()
>>> b = Stock()

문제 6-4

문제 6-3의 코드에서 추가로 아래와 같은 코드를 수행했을 때 ‘???’로 표시된 부분의 결괏값을 적어보세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> a.market
???
>>> b.market
???
>>> Stock.market
???
>>> a.market = "kosdak"
>>> b.market = "nasdak"
>>> a.market
???
>>> b.market
???
>>> Stock.market
???
>>>
1
2
class Stock:
market = "kospi"
1
2
a = Stock()
a.market
'kospi'
1
2
b = Stock()
b.market
'kospi'
1
Stock.market
'kospi'
1
2
a.market = "kosdak"
b.market = "nasdak"
1
a.market
'kosdak'
1
b.market
'nasdak'
1
Stock.market
'kospi'

문제 6-5

문제 6-3, 문제 6-4의 코드가 모두 수행된 후의 Stock 클래스, a와 b 인스턴스의 네임 스페이스를 그려보세요.