Как использовать методы классов в определениях, которые работают без методов классов, но не работают при добавлении - PullRequest
0 голосов
/ 18 марта 2019

Есть код, в который я хотел бы добавить методы класса, но не знаю, как заставить его работать.Код работает нормально, как есть, но нуждается в методах класса, как указано в комментариях

# class definition for an n-sided die

# import packages

import random

class MSdie(object): 
  #constructor here

    def __init__( self ):
        self.sides = 6
        self.roll()

#define classmethod 'roll' to roll the MSdie

    def roll( self ):

        self.value = 1 + random.randrange(self.sides)

        return self.value

#define classmethod 'getValue' to return the current value of the MSdie

    def getValue(  self ):

        return self.value

#define classmethod 'setValue' to set the die to a particular value
    #def setValue(self):

def roller():
    r1 = MSdie()

    for n in range (4):
        print(r1.roll())

roller()

1 Ответ

0 голосов
/ 18 марта 2019

Я согласен с комментарием, что эти методы НЕ ДОЛЖНЫ быть сделаны методами класса.

Но если вы должны, вы не можете использовать self там. Self ссылается на объект, но методы класса не вызываются для объекта, они вызываются для класса. Таким образом, вы больше не можете хранить value в объекте, потому что у вас его нет.

...