2014-12-15 4 views
-2

레벨이있는 ​​게임을 만들고 있습니다. 이것은 아래의 방법으로 파이 게임에서 레벨을 만드는 올바른 방법일까요? 그것을 만드는 더 좋은 방법이 있습니까?파이 게임 클래스 및 __init__

class Level(): 

    def __init__(self,lesson, word,letter): 
     self.lesson = lesson 
     if self.lesson == 1: 
      self.word = 1 
      self.letter = 'J' 
     if self.lesson == 2: 
      self.word = u'\u0430' 
      self.letter = 'F' 
     if self.lesson == 3: 
      self.word = u'\u0435' 
      self.letter = "T" 

    def text_printer(self): 
     text_print = "This lesson's letter is "+ word +". Type the letter-" +letter 
     return text_print 

편집 : 추가 text_print과 그것이 더 의미가 그것을

Class Level(): 
    def __init__(self.lesson) 
     self.lesson = lesson 

    def word(lesson): 
     if self.lesson == 1: 
      word = "Jack" 
      return Jack 

    def letter(lesson): 
     if self.lesson == 1: 
      letter = 'j' 
      return letter 

    def text_printer(word,letter): 
     text_print = "This lesson's letter is "+ word +". Type the letter-" +letter 
     return text_print 
+0

거기에는 단 하나의 방법이 있습니다. 왜 당신이'레슨 '을 사용하여 그들을 결정한다면'단어'와'편지'를 전달하고 있습니까? – kindall

+0

@kindall, 나중에 다른 방법으로 렌더링 할 때 단어와 문자를 사용하고 있습니다. 난 그냥 __init__ 수업을하고 다음 단어와 문자를 선언하는 별도의 방법을 가지고해야합니까? – user2723240

+0

그건 내가 반대하는 것이 아닙니다. 당신이 그들을 사용하고있는 것처럼 보이지 않습니다. 당신이 그들을 사용하지 않는 경우, 그들을 전달하지 마십시오. 당신이 그들을 통과한다면, 그들을 사용하십시오. 둘 중 하나 또는 둘 다 아닙니다. – kindall

답변

0

내가 정확히 요구하는지 모르겠어요이 방법을 수행하지만, 시도 만들 것

을 명확히하고 적어도 올바른 방향으로 안내하십시오.이 코드를 살펴보십시오.

class Level(): 

    def __init__(self, lesson): 

     options = (1, "j"), (u"\u0430", "F"), (u"\u0435", "T") 

     self.lesson = lesson 
     self.word, self.letter = options[lesson-1] 

    def print_text(self): 

     text = u"This lesson's letter is {0}. Type the letter {1}." 
     print text.format(self.word, self.letter) 

l = Level(2) 
l.print_text()