यह मेरा कोड है

class GameDictionary(object):
     def __init__(self):
            pygame.init()
            game_display.fill(white)
            self.game_display = pygame.display.set_mode((window_width,window_height))
            self.fontBig  = pygame.font.Font('HanaMinA.ttf', 400)
            self.fontMedium = pygame.font.Font('HanaMinA.ttf', 75)
            self.fontSmall   = pygame.font.Font('HanaMinA.ttf', 50)
            self.fontFurigana = pygame.font.Font('HanaMinA.ttf', 25)
            self.kanji = 0
            self.listaKanjisInterna = ListaDeKanjis.copy() #Copies global list and uses that one instead
            self.traduccion = False

    def test(self,variable):
        print(str(self.kanji) + str(variable))
    def run(self):
        GameDictionary.test(**GameDictionary()**,"TEXT")

यह मुझे रन विधि के अंदर GameDictionary() क्यों कॉल करता है?

इसके बिना यह काम नहीं करता

0
Peter Petigru 22 पद 2020, 04:55

1 उत्तर

सबसे बढ़िया उत्तर

क्योंकि test GameDictionary इंस्टेंस की एक विधि है, और आपने इसे कक्षा पर बुलाया है, इंस्टेंस नहीं। एक सरल समकक्ष run होगा:

def run(self):
    GameDictionary().test("TEXT")
    #             ^^ parens make it construct a GameDictionary instance to call on

या, दिया गया run स्वयं एक इंस्टेंस विधि है, इसलिए आपके पास पहले से ही एक इंस्टेंस है (self), बस करें:

def run(self):
    self.test("TEXT")

और बिल्कुल नया उदाहरण बनाने से बचें।

1
ShadowRanger 22 पद 2020, 05:30