클래스

Professor Ho's Wiki Site

  • 샘플
  1. # coding:utf-8
  2.  
  3. class Student:
  4.  name = u"철수"
  5.  no = 0
  6.  address = ""
  7.  def __init__(self,a,b,c):
  8.   self.name = a
  9.   self.no = b
  10.   self.address = c	
  11.  def __del__ (self):
  12.   print self.name+u"죽는다"	
  13.  def run (self):
  14.   print self.name+u"가 달립니다!"	
  15.  def study (self):
  16.   print self.name+u"가 공부합니다!"
  17.  def play (self, a):
  18.   print self.name+u"가 "+a+u"랑 놉니다"
  19. a = Student(u"미라",3000, u"부대동")
  20. a.no = 1000
  21. a.address = u"봉천동"
  22. print a.name
  23.  
  24. b = Student(u"미라",10000,u"천안")
  25. b.name = u"영희"
  26. b.no = 20000
  27. b.address = u"가리봉동"
  28. print b.name
  29.  
  30. c = Student(u"미라",3000, u"부대동")
  31. sList = [a,b,c]
  32.  
  33. for x in sList :
  34.  print x.name
  35.  print x.no
  36.  print x.address
  37.  x.play(u"영애")
  38.  x.run()
  39.  
  40. del c	
  41. print u"끝이에요"	
  42.  
  43. class CStudent(Student):
  44.  CAddress = ""
  45.  def __init__ (self, a,name):
  46.   self.CAddress = a
  47.   self.name = name
  48.  
  49. d = CStudent(u"난징","등소평")
  50. d.name = u"주은래"
  51. d.run()
  52.  
  53. sList[2].run()
  • 과제

사람이라는 수업에서한 클래스에 세개의 멤버변수와 두개의 메소드를 추가합니다. 물론 이 다섯개 추가된 기능을 확인하는 부분이 있어야겠지요. 기존에 수업에서 만들었던 멤버변수와 메소드는 그대로 사용하고 여기에 추가하는 겁니다.

    • 확인 포인트: 총(10점): 3개의 고유한 멤버변수가 추가되었나(3점), 2개의 고유한 메소드가 추가되었나(2점), 5개의 새로 추가된 내용에 대해서 확인하는 부분들이 프로그램으로 구현되었나 (5점)

풀이

  1. class person:      #멤버변수 5개 ↓
  2.  name = ""      #멤버변수 이름 
  3.  age = 0        #멤버변수 나이
  4.  num = 0        #멤버변수 학번
  5.  phone = ""     #멤버변수 폰번호
  6.  birth = 0      #멤버변수 생일
  7.  
  8.  def __init__(self,a,b,c,d,e):
  9.   self.name = a
  10.   self.age = b
  11.   self.num = c
  12.   self.phone = d
  13.   self.birth = e
  14.  
  15.  def introduceMe(self):                                       # 메소드 추가 5개 ↓
  16.   print u"저의 이름은 %s + 나이는 %d살 입니다." %(self.name, self.age)
  17.  
  18.  def callMe(self,m):
  19.   print u"%s야 %d로 전화 걸어줘" %(m,self.phone)
  20.  
  21.  def tellMyBirthday(self):
  22.   print u"저는 %s 에 테어났습니다" %self.birth
  23.  
  24.  
  25.  def love(self,you):
  26.   print u"그리고 %s은 %s를 완전 사랑합니다.ㅋㅋㅋㅋㅋㅋ"%(self.name,you)
  27.  
  28. wonho = person(u"허원", 25, 7969314,01011111111,12.17)
  29.  
  30. wonho.introduceMe()
  31. wonho.callMe(u"영희")
  32. wonho.tellMyBirthday()
  33. wonho.love(u"영희")

파일:classResult.jpg

  • 앞 시간에 만든 자신의 고유한 클래스에 생성자를 추가합니다. 자신이 만든 모든 멤버 변수를 한번에 생성할 수 있도록 생성자를 작성합니다.
    • 확인 포인트: 고유의 클래스인가?(3점), 생성자가 모든 멤버변수를 생성하는가?(4점), 구체적으로 객체를 만들어서 보여주었는가?(3점)

풀이

  1. class Person:      #멤버변수 5개 ↓
  2.  name = ""      #멤버변수 이름 
  3.  age = 0        #멤버변수 나이
  4.  num = 0        #멤버변수 학번
  5.  phone = ""     #멤버변수 폰번호
  6.  birth = 0      #멤버변수 생일
  7.  
  8.  def __init__(self,a,b,c,d,e):
  9.   self.name = a
  10.   self.age = b
  11.   self.num = c
  12.   self.phone = d
  13.   self.birth = e
  14.  def introduceMe(self):                                       # 메소드 추가 5개 ↓
  15.   print u"저의 이름은 %s 이고 나이는 %d살 입니다." %(self.name, self.age)
  16.  def callMe(self,m):
  17.   print u"%s야 %d로 전화 걸어줘" %(m,self.phone)
  18.  def tellMyBirthday(self):
  19.   print u"저는 %s 에 테어났습니다" %self.birth
  20.  def love(self,you):
  21.   print u"그리고 %s은 %s를 완전 사랑합니다.ㅋㅋㅋㅋㅋㅋ"%(self.name,you)
  • 자신이 이전에 만든 고유한 클래스를 상속받는 클래스를 만듭니다.
    • 확인 포인트: 고유의 클래스인가?(3점), 멤버 변수를 추가하였는가? (2점), 메소드를 추가하였는가? (2점), 상속한 클래스로 객체를 만들고 추가 변수와 메소드가 동작하는것을 확인하는 부분이 있는가?
  1. class Student(Person):  # 이전에 만든 고유한 클래스를 상속받음
  2.  score = ""           # 멤버변수 추가(좋아하는 것)
  3.  school = ""           # 멤버변수 추가(싫어하는 것)
  4.  
  5.  def __init__(self,a,b,c,d,e,f,g): 
  6.   self.name = a
  7.   self.age = b
  8.   self.num = c
  9.   self.phone = d
  10.   self.birth= e      #추가 변수
  11.   self.score = f      #추가 변수
  12.   self.school = g
  13.  
  14.  def studying(self):  # 메소드 추가
  15.   print u"%s 가 열심히 공부하고 %d 점을 받았습니다" %(self.name,self.score)
  16.  
  17. wonho = Student(u"허원", 23, 7969314, 0101231122, u"2000년 1월 1일", 100, u"공주대학교") # 상속한 클래스로 객체 만듬
  18. wonho.introduceMe()
  19. wonho.studying()
개인 도구