2013-11-06 4 views
4

Я просто пытаюсь создать код, который генерирует кости (в python). Вот код:Typeerror: object .__ new __() не принимает параметров (help)

import random 

class Dice: 
    def _init_(self, number_dice): 
      self._dice = [6] * number_dice 

    def roll_dice(self): 
      for d in range(len(self._dice)): 
       self._dice[d] = random.randit(1, 6) 
      self._dice.sort() 

    def print_roll(self): 
      length = len(self._dice) 
      print(str(lenth) + "dice:" + str(self._dice)) 



my_dice = Dice(2) 
my_dice.roll_dice() 
my_dice.print_roll() 

компилятор говорит что-то о линии 18. Я новичок в программировании, так что ничего помогает =]

+0

возможно дубликат [Python:. Объект \ _ \ _ новый \ _ \ _() не принимает никаких параметров] (http://stackoverflow.com/questions/13832086/python- object-new-takes-no-parameters) – dragonx

+0

«что-то о» - было бы полезно также скопировать сообщение об ошибке., –

ответ

11

Вам нужно два подчеркивает до и после __init__:

def __init__(self, number_dice): 
    self._dice= [6] *number_dice 

В противном случае Python рассматривает этот метод как настраиваемый, а не специальный метод конструктора __init__.

+4

Удовлетворяющий факт: двойной символ подчеркивания называется «dunder». – BlackVegetable

Смежные вопросы