Ошибка с применением метода
Добрый день изучаю классы на Python, создаю легендарного сапера) Ошибка с передачей аргумента
from classes import *
import random
bomb_ratio = 3
#Создание класса и индексов для класса
set_cell = [ 'x' + str(i) for i in range(9)]
for i in range(len(set_cell)):
exec('{i} = Cell({index})'.format(i=set_cell[i], index=i))
#Создание заряженных ячеек
x0.now_dangerous()
TypeError: now_dangerous() takes 0 positional arguments but 1 was given
Сам класс
class Cell(object):
def __init__(self, index):
self.index = index
self.charge = 0
def now_dangerous():
#self.charge = 0
pass
В чем ошибка?
Ответы (1 шт):
Автор решения: V-Mor
→ Ссылка
Любому методу класса в Python при вызове первым аргументом автоматически передаётся self – объект этого класса, для которого вызывается метод (это делается для того, чтобы метод "понимал", с каким именно объектом он работает, объектов класса ведь может быть много, а метод на всех один). Причём передаётся всегда, даже если он Вам там не нужен. Следовательно, чтобы всё работало, этот аргумент нужно принимать. Перепишите метод now_dangerous так:
def now_dangerous(self):
#self.charge = 0
pass