NameError: имя 'di' не определено в объекте - PullRequest
0 голосов
/ 26 мая 2020

Я хочу запустить di в str , но там написано NameError: имя 'di' не определено, когда я его запускаю.

class DicePile:

    def __init__(self, initQuantity, initSides,initrollCount = 0, initrolled = False): # constructor
        self.setQuantity(initQuantity)
        self.setSides(initSides)
        self.__rollcount = initrollCount
        self.rolled = initrolled

    def __str__(self): # generate a string representation of the object
        rc = '(roll count:' + str(self.__rollcount) + ')'
        if self.rolled:
            resultString = str(self.__results)
        else:
            resultString = 'not rolled'

        return di(self) + ': ' + resultString + rc

    def di(self):

        return str(self.__quantity) + 'd' + str(self.__sides)

Я все еще учусь OOP и функции, и эта проблема мучила меня часами

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Где вы используете объект DicePile, сначала создайте объект: например:

dice_pile = DicePile()

затем при вызове вашего метода:

test = dice_pile.di()
0 голосов
/ 26 мая 2020

Вы бы не передавали self, вы вызываете свою функцию-член на self . Например,

return self.di() + ': ' + resultString + rc

Вы можете прочитать Python учебник по классам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...