Я уже много лет программирую на Java, и моя школа здесь учит Python, и у меня с ним много проблем. Мой профессор попросил нас создать Connect4 в Python и начать с этих двух методов:Самостоятельный аргумент Python
def __init__(self, width, height):
self.width = width
self.height = height
self.data = [] # this will be the board
for row in range(self.height):
boardRow = []
for col in range(self.width):
boardRow += [' ']
self.data += [boardRow]
def __repr__(self):
#print out rows & cols
s = '' # the string to return
for row in range(self.height):
s += '|' # add the spacer character
for col in range(self.width):
s += self.data[row][col] + '|'
s += '\n'
#print out separator
#your code here
# print out indices of each column
# using mod if greater than 9,
# for spacing issues
#your code here
return s # return it
Я не понимаю self
аргумент, я прочитал много об этом, и ничто, кажется, имеет смысл для меня. Я надеялся, что кто-то может дать мне небольшое объяснение того, что делает self
в этой функции, и почему мой профессор говорит, что первая функция содержит только два аргумента, но есть четверо.
Любая помощь/объяснения были бы весьма признательны!
Here, где я получил эти функции.
Вы посмотрели на это? http://stackoverflow.com/q/2709821/748858 – mgilson
'self' является экземпляром вашего класса. Это неявно (или явно, в зависимости от вашей точки зрения) передается как первый аргумент для каждого метода. Это как «это» в java, но вы явно должны называть его первым аргументом для каждого метода. – roippi
Я отредактировал ваш код (checkit, я надеюсь, что это правильно;), потому что он был неправильно отступом, а отступы с Python чрезвычайно важны;) – Giupo